【发布时间】:2013-07-23 15:03:13
【问题描述】:
如何访问由 ng-repeat 生成的范围集?
我想这个问题的核心是我不太了解 a) 我传递给 ng-repeat 指令的对象集合和 b) 它生成的范围集合之间的关系是如何工作的.我可以玩 (a),ng-repeat 范围会监视和接收它,但是如何在范围本身上设置变量 (b)?
我的用例是我有一组使用 ng-repeat 重复的元素,每个元素都有一个使用 ng-show/ng-hide 切换的编辑视图;每个元素的状态都保存在本地范围内的变量中。我希望能够在特定元素上触发 ng-show,但我希望从 outside ng-repeat 调用触发器,因此我需要能够访问本地范围变量.
谁能指出我正确的方向(或者告诉我我是不是找错了树)?
谢谢
更新:下面的链接非常有帮助,谢谢。最后,我为每个重复元素创建了一个指令,并使用该指令的链接函数将其作用域添加到根作用域上的集合中。
【问题讨论】:
-
在 ng-repeat 期间创建的所有作用域都继承自父作用域,因此您可以轻松地从子作用域访问父作用域元素,但不能从子作用域更改父作用域元素(适用于原始类型)。请通过这个github.com/angular/angular.js/wiki/Understanding-Scopes
-
谢谢 - 会看看。我的问题不是我想从子作用域访问父作用域,而是反过来。
-
您好,谢谢。我以前确实读过。我的问题不在于我不认为的继承,而是相反。如何从父级内部访问子变量?
-
我们您可以查看
scope.$broadcast来实现您的目标。
标签: angularjs angularjs-scope angularjs-ng-repeat