【发布时间】:2014-05-04 02:59:09
【问题描述】:
如何在角度控制器中监听子属性的变化?从那个控制器知道哪个孩子被改变了?
HTML
<div ng-app ng-init='people = [{name: "bill", age: "11"}, {name: "jim", age: ""}, {name: "ryan", age: ""}]'>
<h1> msg: {{ msg }} </h1>
<table>
<tr ng-repeat='person in people'>
<td>
{{ person.name }}
<input ng-model='person.name'>
</td>
</tr>
</table>
</div>
编辑
例如,如果我想将 .highlight 类添加到每个具有年龄值的 <td> 中,我该怎么做?我是 Angular 的新手,但我认为 $watch 是正确的方法吗?因为值可能会在 UI 中更改,但更改可能来自其他地方。
父控制器需要更改值,并查明哪一个更改并添加类。
【问题讨论】:
-
我建议使用
ng-if。 angular 已经为你的人物模型添加了$watch,如果你使用ng-class,它将添加更多$watches。ng-if不会添加$watches。由于您的ng-repeat循环遍历数组,因此添加一个 if 语句不会产生太大影响。但当然你可以比较它们。
标签: angularjs