$scope.radiolabels={
Name:"",
type:"radiobtns",
rbtn:[{
Name:"",
order:$scope.order
}]
};
如何迭代objct及其rbtn.I意味着在第一个div中我们必须迭代对象并在第一个div内部我们需要迭代rbtn。我试过如下。
<ul>
<li ng-repeat="radiolbs in radiolabels track by $index">
RadioButtons {{$index}}: <input type="text" id="ral_{{$index}}" data-ng-model="$parent.radiolabels[$index].Name"/><br>
<div ng-repeat="r in radiolabels.rbtn track by $index">
Option {{$index}}<input type="text" id="rab_{{$index}}"><br>
Option {{$index}}<input type="text" id="rab_{{$index}}"><button class="btn btn-default">+</button>
</div>
</li>
</ul>
它不起作用
答案 0 :(得分:1)
您正在尝试迭代外部循环中的对象。这不起作用,因为你的对象不在数组中。
对数组进行迭代将为您提供$index
变量,否则您只需迭代键/值对。
您可能希望将外部对象包装在数组中。
$scope.radiolabels = [{
Name: "",
type: "radiobtns",
rbtn: [{
Name: "",
order: $scope.order
}]
}];
然后可以通过询问当前迭代对象的属性来修复内循环的逻辑。
<ul>
<li ng-repeat="radiolbs in radiolabels track by $index">
RadioButtons {{$index}}:
<input type="text" id="ral_{{$index}}" data-ng-model="radiolbs.Name"/><br>
<div ng-repeat="r in radiolbs.rbtn track by $index">
Option {{$index}}<input type="text" id="rab_{{$index}}"><br>
Option {{$index}}<input type="text" id="rab_{{$index}}">
<button class="btn btn-default">+</button>
</div>
</li>
</ul>
答案 1 :(得分:0)
您可以尝试ng-init
。像:
<ul>
<li ng-repeat="radiolbs in radiolabels" ng-init="dataIndex = $index">
RadioButtons {{dataIndex }}: <input type="text" id="ral_{{dataIndex}}" data-ng-model="$parent.radiolabels[dataIndex ].Name"/><br>
</ul>