【发布时间】:2015-03-25 22:33:43
【问题描述】:
在这里看看这个小提琴:http://jsfiddle.net/bcaudan/SbrKj/
关键是在隔离作用域上有这样的代码:
{attr1: "=", attr2: "&"}
--并且当对attr1的更改更改绑定的父值时,attr2也会以某种方式自动重新评估其中的表达式,这是一个返回attr1值的函数,我不知道它是如何知道它的需要这样做。
【问题讨论】:
-
Angular 知道它需要在每个
$digest循环中评估模板中的所有{{ }}表达式。函数没有改变,所以 Angular 每次都调用同一个函数。 -
所以函数不断被调用看它的值是否改变了?????????那不可能有效率
-
不,它只在摘要上调用,只有在调用
$scope.$apply时才会发生。这发生在ngModel指令中。 -
所以你真的需要小心这些在 $digest 循环上触发的函数不要太重,否则你可能会招致一些严重的性能损失。
-
@Aerovistae 你是正确的:被插值的函数。您不应该在其中进行任何潜在的阻塞计算。笔记。由于与页面的“任何”交互,该摘要循环经常发生。
标签: angularjs angularjs-directive angularjs-scope