Si j'ai une directive qui répond au statut d'un attribut particulier sur la portée et que je souhaite modifier cet attribut dans mon test et vérifier qu'il répond correctement, quelle est la meilleure façon de faire ce changement?
J'ai vu ces deux modèles:
scope.$apply(function() {
scope.myAttribute = true;
});
et
scope.myAttribute = true;
scope.$digest();
Quelle est la différence entre eux, quel est le meilleur et pourquoi?
la source
$digest
également appelé les enfants du télescope?$digest
ne tire pas seulement les observateurs sur la portée actuelle, mais aussi sur tous ses enfants.Comme la documentation elle-même le mentionne, $ digest cycle est exécuté à chaque fois que vous le faites
$scope.$apply
. Selon le guide du développeur sur la portéeEt selon la documentation de l' API Scope
Vous ne devez donc pas appeler explicitement
$digest
, votre$apply
méthode d' appel déclencherait un cycle de résumé.la source