我有object
:
[{
'name': '2015',
'section': '001',
'subsections': [{
subsection:'aa',
mainelements: ['cc','dd']
},{
subsection:'bb',
mainelements: ['ee','ff']
}]
}]
我可以在html
<body>
<button ng-click="new()">New</button>
<ul>
<li ng-repeat="audit in audits">
<span ng-hide="editing"><h5>{{audit.name}}</h5></span></br>
<input ng-show="editing" type="text" ng-model="audit.name" size="30" placeholder="add name here"></br>
<span ng-hide="editing">{{audit.section}}</span></br>
<input ng-show="editing" type="text" ng-model="audit.section" size="30" placeholder="add section here"></br>
<ul>
<li ng-repeat="subsection in audit.subsections">
<span ng-hide="editing">{{subsection.subsection}}</span></br>
<input ng-show="editing" type="text" ng-model="subsection.subsection" size="30" placeholder="add subsection here"></br>
<ul>
<li ng-repeat="mainelement in subsection.mainelements">
<span ng-hide="editing">{{mainelement}}</span></br>
<input ng-show="editing" type="text" ng-model="mainelement" size="30" placeholder="add mainelement here"></br>
</li>
</ul>
</li>
</ul>
<div id="buttons">
<button type="button" ng-hide="editing" ng-click="editing = true">Edit</button>
<button type="button" ng-show="editing" ng-click="editing = false">Save</button>
</div>
</li>
</ul>
</body>
但问题是,我需要所有ng-model
都是动态的,以便我可以单独编辑它们。在这种情况下,只有audit.name
和audit.section
是动态的。但subsection.subsection
和main element
不是。
当我这样做时:
$scope.logging = function(i) {
var editaudit = $scope.audits[i];
console.log(editaudit.name);
console.log(editaudit.section);
console.log(editaudit.subsections);
console.log(editaudit.subsections.mainelements);
}
得到这个
[Log] 2015
[Log] market map
[Log] [{subsection: "aa", mainelements: ["cc", "dd"], $$hashKey: "object:9"}, {subsection: "bb", mainelements: ["ee", "ff"], $$hashKey: "object:10"}]
[Log] undefined
ng-model
变得充满活力吗?mainelement
形式访问Key-value
这是一个对象?更新
我设法让所有元素显示出来:
<!--Html -->
<ul>
<li class="bitcard" ng-repeat="subsection in audit.subsections">
<span ng-hide="editing">{{audit.subsections[$index].subsection}}</span></br>
<input ng-show="editing" type="text" ng-model="audit.subsections[$index].subsection" size="30" placeholder="add subsection here"></br>
<ul>
<li class="bitcard" ng-repeat="mainelements in audit.subsections[$index].mainelements">
<span ng-hide="editing">{{mainelements}}</span></br>
<input ng-show="editing" type="text" ng-model="mainelements" size="30" placeholder="add mainelement here"></br>
</li>
</ul>
</li>
</ul>
但现在问题是ng-model="mainelements"
在第5行的最后一行并不是唯一的。有没有办法让第二个索引像$index02
或其他替代方法来做到这一点?
答案 0 :(得分:2)
所以你有一个子部分数组,并且在另一个mainelements数组中。
因此,您需要使用有效索引访问每个项目。
因此,console.log(editaudit.subsections.mainelements);
注销undefined
。将其更改为console.log(editaudit.subsections[index].mainelements);
在您的视图中,您还可以在ng-repeat
内按索引访问数组项。
只需使用audit.subsections[$index].subsection
代替subsection.subsection
和mainelements[$index]
代替mainelement
即可绑定到您的模型。
不确定你的意思是&#34;通过动态&#34;得到所有ng-model
。但是我希望这能帮到你。