我有ng-repeat
嵌套ng-if
,每个ng-if
内有一个包含ng-click
函数的复选框。我想通过函数传递嵌套的ng-repeat
' $index
值。
这是我的代码。
<div class="student" ng-repeat="student in studentDetails.childNumber track by $index" ng-init=" studentnumber = $index">
<div ng-repeat="grmnt in student.garmentNumber track by $index" ng-init="grmntidex = $index" ng-if="grmnt.gurmentType === 'shirt'">
<div ng-click="garmentOpen = !garmentOpen;" class="z-depth-1 garmentelement">Garment</div>
<div class="garmentHeader" ng-if="garmentOpen">
<div class="garmentBody">
<div class="row">
<p class="col s6 center-align">
<input type="checkbox" id="BrandMeasurement" ng-click="msrmntSelector(grmnt)" />
<label for="BrandMeasurement">Brand Measurement</label>
</p>
<p class="col s4 center-align">
<input type="checkbox" id="BodyMeasurement" ng-click="msrmntSelector(grmnt)" />
<label for="BodyMeasurement">Body Measurement</label>
<div>
</div>
</div>
</div>
</div>
</div>
</div>
但问题是,当我选择最后一个grmnt
元素时,它会通过id
传递正确的服装,但是在选择了第一个元素后,它没有通过第二个或第三个或第四个任何一个服装。在每种情况下,它只传递第一个元素。
任何人都可以告诉我在哪里犯了任何错误(如果有的话)??
答案 0 :(得分:0)
请勿在{{1}}上使用ng-if
,只需使用ng-repeat
中的过滤器。
ng-repeat
编辑:我想也许问题出现在你的标签上。标签的<div ng-repeat="grmnt in student.garmentNumber | filter:{gurmentType: 'shirt'} track by $index" ng-init="grmntidex = $index">
属性需要唯一匹配输入的for
属性。每行都需要自己的id
/ id
对。使用for
执行此操作。
$index