【发布时间】:2015-12-23 05:41:08
【问题描述】:
我试图了解 angular 1 摘要循环的工作原理以及它们如何影响现有范围。我有 2 个控制器,其中一个使用带中继器的角形材料。第二个控制器是一个简单的按钮点击事件。这两个事件都打印到控制台以查看发生了什么。
我看到的是,每次我单击第二个控制器上的按钮时,中继器都会重新运行其整个计算?
这是 Angular 的工作方式吗?请参阅随附的以下代码笔 - 单击按钮时,中继器每次都会在第一个控制器上重新运行。我假设每次在任何控制器上发生任何操作时都会发生这种情况——这看起来很疯狂。
中继器代码如下:
<div flex="50" ng-repeat="item in items">
<md-checkbox ng-checked="exists(item, selected)" ng-click="toggle(item, selected)">
{{ item }} <span ng-if="exists(item, selected)">selected</span>
</md-checkbox>
</div>
起初我认为我的角度有问题,但似乎这种情况发生在下面完整的代码笔的任何地方。
【问题讨论】:
-
这就是它应该如何工作的。脏检查循环对整个应用程序运行多次,直到范围的状态稳定。这是触发事件的低效方式。但这也是设计使然 - 它允许您使用 POJO
标签: angularjs