角度消化周期是什么?

时间:2015-11-02 14:19:46

标签: angularjs angular-promise angular-digest

让我们在控件的方法中执行代码,例如,当我们按下按钮时

$timeout(function() {
    $scope.names = ['A', 'B', 'C'];
}, 0, false).then(function() {
    $scope.names.push('D');
})

在这种情况下,我们不会在屏幕上看到任何更改,因为摘要周期将不会运行

但如果我们写这个

$timeout(function() {
    $scope.names = ['A', 'B', 'C'];
}, 0, false).then(function() {
    $scope.names.push('D');

    return $q.when();
})

我们会看到更改,因为当我们返回promise时,$ Q提供程序决定运行摘要周期。 http://plnkr.co/edit/DqAzPBe37Qd9CU1ug8Pp?p=preview

请你解释一下为什么,我不明白这种行为的逻辑。 怎么预防这个?

0 个答案:

没有答案