AngularJS数据绑定在ng-repeat内重绘

时间:2013-10-27 23:25:29

标签: javascript angularjs angularjs-scope angularjs-ng-repeat

如果我有像这样的范围

$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

换句话说,在屏幕上绘制一个对象数组,如果我将未绑定的属性更改为其中一个对象的视图,那么视图是否会尝试重绘自己?

1 个答案:

答案 0 :(得分:1)

不,插值使用$parse服务来确定要观看的内容。它只会在obj.a更改时更新该文本节点。

类似于撰写$scope.$watch("obj.a", handler)。在这种情况下,它正在评估每个摘要上的语句。如果该语句的结果发生变化,那么它将调用您的函数。在插值的情况下,回调函数然后更新DOM。