javascript - 如何正确使用 AngularJS 摘要循环

标签 javascript angularjs angularjs-digest

我一直在研究 AngularJS 摘要循环的注意事项,我想更好地理解正确使用和不正确使用它之间的区别。

例如,如果我有一个如下所示的 AngularJS 代码:

var myApp = angular.module("testApp", []);

myApp.controller("testController", ["$scope", "$timeout", function($scope, $timeout){
    setTimeout(function(){
        $scope.username = "Test User name";
    }, 3000);

    $timeout(function(){
        $scope.username = "AngularJS User name";
    }, 3000);
}]);

为什么 setTimeout 没有被用作 Digest Cycle 的一部分,而 $timeout 是,我该如何解决这个问题?

请记住,我不仅在寻找代码解决方案,而且还在寻找对发生这种情况的原因的解释。尽管代码解决方案可能会出现,但它不会 self 解释

最佳答案

$timeoutsetTimeout() 的 Angular 化版本,即它以触发摘要循环的方式编码。 setTimeout() 是一个普通的 Javascript 函数,它对 Angular 或摘要循环一无所知。因为 setTimeout() 不是一个简单的 JS 对象,Angular 不能$watch它。

因此,拥有像 $timeout 这样的功能的全部意义在于它们是某些 Javascript 功能的 Angular 友好版本。

关于javascript - 如何正确使用 AngularJS 摘要循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35417922/

相关文章:

javascript - 什么属性用于查找浏览器窗口的宽度和高度?

javascript - 如何使用输入进行自动完成搜索?

javascript - angularjs ng-disabled 不会将禁用添加到按钮

javascript - 使用 Angular 应用程序嵌入 Gist

javascript - 如何从另一个 Controller 更新 Controller 的 ng-repeat 模型?

javascript - Angular 元素绑定(bind)到相同的函数。避免对每个摘要进行多次调用

javascript - 我必须在 IE 中自动化 PDF 文档

javascript - 如何清除 Angular 图表的数据

javascript - jquery 宽度切换动画在动画发生期间显示垂直单元格

javascript - 在 $watch 中使用 $apply