$ apply vs $ digest w testowaniu dyrektywy

Jeśli mam dyrektywę, która odpowiada na status konkretnego atrybutu w zakresie i chcę zmienić ten atrybut w moim teście i sprawdzić, czy odpowiada on poprawnie, to jaki jest najlepszy sposób na dokonanie tej zmiany?

Widziałem oba te wzory:

scope.$apply(function() {
    scope.myAttribute = true;
});

i

scope.myAttribute = true;
scope.$digest();

Jaka jest różnica między nimi, a która jest lepsza i dlaczego?

questionAnswers(2)

yourAnswerToTheQuestion