更新ng-repeat中的范围

时间:2014-01-02 18:33:11

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

根据几个消息来源,不建议使用$ parent来更新ng-repeat中的范围(因为它有自己的范围)。我执行以下操作来更新ng-repeat中的数据模型:

<div ng-repeat="datarow in datasource">
   <select ng-model="datasource[$index].property" ng-options="option.first_name for option in datarow.options"></select>
</div>

我使用datasource[$index].property来更新数据源数组。通过这种方式,我可以看到用户何时在所有下拉列表中做出选择,并且我可以启用按钮来提交表单。

有更好的方法吗?我宁愿不使用$ parent。

1 个答案:

答案 0 :(得分:0)

只是为了解决这个问题......感谢@eternalmatt的建议。

我决定坚持使用数据驱动模型,因此我可以避免创建一个功能,其唯一目的是更新更高范围的数据。

相反,引用更高作用域中的属性也同样有效,因为较低的作用域从$ parent继承而未显式使用$ parent。

重申我的例子,上面:

<div ng-repeat="datarow in datasource">
   <select ng-model="datasource[$index].property" ng-options="option.first_name for option in datarow.options"></select>
</div>

我的主控制器会在注意到数组中某个对象的属性被更新时$ digest!