【发布时间】:2016-02-14 17:36:29
【问题描述】:
我还在学习 Angular,如果问题是无稽之谈,请原谅我
我有一个具有这种层次结构的对象:
{
a : [...],
b : [{
a: [...]
}, {
...
}]
}
也就是说,我对主要对象的直接子对象和间接子对象具有相同的对象模型。也就是说,名为“a”的两个属性具有相同的字段
我构建了一个由 ng-view 管理的视图,并认为可以在主控制器和迭代 b 元素的 ng-repeat 中调用它。但是,我不知道如何更改传递给管理“a”的视图的范围:
主视图是这样制作的:
<div ng-controller="MainController as ctrl">
<div ng-include="'subView'"/>
<div ng-repeat="bElement in ctrl.b">
<div ng-include="'subView'"/>
</div>
</div>
在 subView 中,我可以访问像 bElement.a 这样的元素,因为我获得了与外部控制器相同的范围。但是如何访问根元素的属性a呢?
我需要的是像 ng-repeat 这样的东西,它允许为属性创建别名,以便可以覆盖它,但没有“重复”。
我也尝试过以这种方式使用 ng-init:
<div ng-controller="MainController as ctrl">
<div ng-include="'subView'" ng-init="list = ctrl.a"/>
<div ng-repeat="bElement in ctrl.b">
<div ng-include="'subView'" ng-init="list = bElement.a"/>
</div>
</div>
但只有第二次调用有效
【问题讨论】:
标签: javascript angularjs angularjs-ng-repeat ng-repeat angularjs-ng-include