如果我有像这样的范围
$scope.array = [ { a: 1, b: 2 }, { a: 2, b: 1 }];
有了观点:
<div>A:
<div ng-repeat="obj in array">{{obj.a}}</div>
</div>
考虑到表达式{{obj.a}}服务于ng-repeat指令,我的问题是如果我改变obj.b,表达式{{obj.a}}背后的AngularJS观察者是否会执行像这样
$scope.players[0].b = 666
换句话说,在屏幕上绘制一个对象数组,如果我将未绑定的属性更改为其中一个对象的视图,那么视图是否会尝试重绘自己?
答案 0 :(得分:1)
不,插值使用$parse
服务来确定要观看的内容。它只会在obj.a
更改时更新该文本节点。
类似于撰写$scope.$watch("obj.a", handler)
。在这种情况下,它正在评估每个摘要上的语句。如果该语句的结果发生变化,那么它将调用您的函数。在插值的情况下,回调函数然后更新DOM。