我定义了一个范围的函数。而当我从{{}}的视图中调用它时,它执行X次。
控制器
function testCtrl($scope) { $scope.myFunc = function(name) { return "Hello " + name; } }
HTML
<div>{{myFunc('Joe')}}</div>
你可以在这个例子中看到它:http://jsfiddle.net/rbRvD/2/
或与Plunker:http://plnkr.co/edit/LLQ7cKs2fEoBwv0C5XPE
我想这是错误的方式,但为什么它执行了这么多次?
你的功能是运行10次。为什么10?为什么不100?
原文链接:https://www.f2er.com/angularjs/145009.htmlThe watch listener may change the model,which may trigger other
listeners to fire. This is achieved by rerunning the watchers until no
changes are detected. The rerun iteration limit is 10 to prevent an
infinite loop deadlock.
当你看到这种情况发生时,这意味着你正在改变模型,使得Angular必须重新运行摘要并重新启动手表。在特定情况下,您正在调用更新计数器的功能,该计数器显示在页面上。当计数器值更改时,会再次运行摘要,调用更新计数器等的功能。
Angular希望你(并且鼓励你)改变模型,让观点回应这些变化,而不是相反。