好吧,让我说实话,因为我是 Angular 初学者,我不知道如何提出这个问题,我会尽力解释这个问题。
正如您在上图中看到的,我有一个类列表,每个类下面没有任何部分。您可以在每行上看到一个蓝色按钮,单击该按钮我需要知道选择了哪个“部分”。
这是问题陈述。
现在这是我的 HTML
<table class="table table-hover">
<tbody>
<tr>
<th>Syllabus</th>
<th>{{phrase.className}}</th>
<th>Select Section</th>
<th>{{phrase.Operations}}</th>
</tr>
<tr ng-repeat="class in classes| filter:searchText">
<td id="syl">
<span ng-repeat="(sid, syllabi) in syllabus" ng-if="sid == class.classAcademicYear">
{{ syllabi.yearTitle}}
</span>
</td>
<td id="cls">{{class.className}}</td>
<td id="sec">
<div class="form-group">
<select class="form-control" name="student_section" ng-model="selectedSection">
<option ng-selected='class.sections[$index].id' ng-repeat="(key, section) in class.sections" value="{{section.id}}">{{section.sectionName}}</option>
</select>
</div>
</td>
<td id="vew">
<button ng-click="edit(class.id)" type="button" class="btn btn-info btn-flat" title="{{phrase.ReadSchedule}}" tooltip><i class="fa fa-fw fa-th-list"></i></button>
</td>
</tr>
<tr ng-show="!classes.length">
<td class="noTableData" colspan="3">{{phrase.NoClasses}}</td>
</tr>
</tbody>
</table>
这里我们看到一个 nseted ng-repeat,其中我根据类列表创建表行,现在这个类对象还保存了内部的section对象,正如你可以看到内部ng-repeat使用classes.sections来迭代选项
现在classes json对象如下所示
[{
"id": 11,
"className": "Class-1 (STATE)",
"classAcademicYear": 2,
"classSubjects": "[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\"]",
"dormitoryId": null,
"sections": [{
"id": 11,
"sectionName": "Section -1 (STATE)",
"sectionTitle": "section title -1",
"classId": 11,
"teacherId": "[\"10\",\"11\",\"12\",\"13\",\"14\",\"15\"]"
}]
}, {
"id": 12,
"className": "Class-2",
"classAcademicYear": 2,
"classSubjects": "[\"0\"]",
"dormitoryId": null,
"sections": [{
"id": 12,
"sectionName": "Section -1",
"sectionTitle": "section title -1",
"classId": 12,
"teacherId": "[\"0\"]"
}]
}, {
"id": 13,
"className": "Class-3",
"classAcademicYear": 2,
"classSubjects": "[\"0\"]",
"dormitoryId": null,
"sections": [{
"id": 13,
"sectionName": "Section -1",
"sectionTitle": "section title -1",
"classId": 13,
"teacherId": "[\"0\"]"
}]
}, {
"id": 14,
"className": "Class-4",
"classAcademicYear": 2,
"classSubjects": "[\"0\"]",
"dormitoryId": null,
"sections": [{
"id": 14,
"sectionName": "Section -1",
"sectionTitle": "section title -1",
"classId": 14,
"teacherId": "[\"0\"]"
}]
}]
我想做的是为动态的内部选择下拉元素设置一个 ng-model ,如下所示,这样每次选择该部分时,我都可以将蓝色按钮操作设置为任何部分 id。
ng-model="selectedSection[class.id]"
这不起作用。
我知道这可能不是足够的信息,但如果有人有兴趣帮助我解决这个问题,我可以分享更多详细信息。
最佳答案
要检查选择了哪个 ng-repeat 行,您应该发送值 $index 和 $parent.$index (如果您有嵌套的 ng-repeat)。
<button ng-click="edit($index, $parent.$index)" type="button">
有帮助吗?
关于javascript - 使用嵌套 ng-repeat 和动态 ng-model 作为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43546442/