有人可以向我解释this plunker
中附加的内容JS
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, $interval) {
$scope.name = 'World';
var plop = $interval(function(){}, 1000);
$scope.test = function(){
console.log("test");
}
})
HTML
<body ng-controller="MainCtrl">
<p ng-class="test()">Hello {{name}}!</p>
</body>
如果您打开控制台,则可以看到&#34; test&#34;正在重复输出,但它不在$ interval函数!!!
答案 0 :(得分:5)
ng-class
是在每个$digest
循环上计算的属性。由于<p>
元素ng-class
是对test()
的函数调用,test()
将在$digest
上进行评估。
$interval
是绑定到角度消化循环的setInterval
的包装器,所以它本质上是说&#34;每秒运行一次摘要循环&#34;。当摘要循环运行时,将再次评估test()
,这会导致再次打印控制台消息。