angularjs - funciones - john papa angular español
¿Qué significa ''var vm=esto;'' ¿Significa en controladores angulares? (2)
¿Por qué ?: Ayuda a evitar la tentación de usar los métodos de $ scope dentro de un controlador cuando, de lo contrario, sería mejor evitarlos o mover el método a una fábrica y consultarlos desde el controlador.
Puedes consultar el Estilo Angular John Papa completo para aprender más ...
Estaba navegando algunas cosas en github y vi dentro de controller.js, alguien había puesto lo siguiente:
function ImageController ($scope, $timeout) {
var vm = this;
}
¿Para qué se usa esto?
El vm
en este caso significa viewmodel
.
Es un acceso directo, por lo que en lugar de escribir this.someMethod()
puede usar vm.someMethod()
.
Muy común cuando usa la sintaxis de Controller As
, por lo que no usa $scope
por "accidente".
Además, this
palabra clave puede ser desordenada de usar, ya que puede hacer referencia a diferentes elementos dependiendo de dónde se usa.