Se eu tiver uma diretiva que responde ao status de um atributo específico no escopo e quiser alterar esse atributo em meu teste e verificar se ele responde corretamente, qual é a melhor maneira de fazer essa alteração?
Eu vi esses dois padrões:
scope.$apply(function() {
scope.myAttribute = true;
});
e
scope.myAttribute = true;
scope.$digest();
Qual é a diferença entre eles, qual é o melhor e por quê?
fonte
$digest
também ser chamados filhos do escopo?$digest
não dispara observadores apenas no escopo atual, mas também em todos os seus filhos.Como a própria documentação menciona, o ciclo $ digest é executado a qualquer momento
$scope.$apply
. De acordo com o guia do desenvolvedor sobre o escopoE de acordo com a documentação da API de escopo
Portanto, você não deve chamar explicitamente
$digest
, seu$apply
método de chamada acionaria um ciclo de resumo.fonte