Si tengo una directiva que responde al estado de un atributo en particular en el alcance, y quiero cambiar ese atributo en mi prueba y verificar que responde correctamente, ¿cuál es la mejor manera de hacer ese cambio?
He visto estos dos patrones:
scope.$apply(function() {
scope.myAttribute = true;
});
y
scope.myAttribute = true;
scope.$digest();
¿Cuál es la diferencia entre ellos, cuál es mejor y por qué?
fuente
$digest
También se llamará a los hijos del osciloscopio?$digest
no solo dispara a los observadores en el alcance actual, sino también a todos sus hijos.Como la documentación misma menciona, el ciclo de $ digest se realiza cada vez que lo hace
$scope.$apply
. Según la guía del desarrollador sobre el alcanceY según la documentación de la API de alcance
Por lo tanto, no debe llamar explícitamente
$digest
, su$apply
método de llamada desencadenaría un ciclo de resumen.fuente