加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 角度范围函数执行多次

发布时间:2020-12-17 08:24:16 所属栏目:安全 来源:网络整理
导读:我定义了一个范围的函数。而当我从{{}}的视图中调用它时,它执行X次。 控制器 function testCtrl($scope) { $scope.myFunc = function(name) { return "Hello " + name; }} HTML div{{myFunc('Joe')}}/div 你可以在这个例子中看到它:http://jsfiddle.net/rb
我定义了一个范围的函数。而当我从{{}}的视图中调用它时,它执行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?

答案is in the docs:

The 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希望你(并且鼓励你)改变模型,让观点回应这些变化,而不是相反。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读