我正在使用以下ng-repeat
声明。
是否可以将签入外ng-repeat
表示只创建此行
学生姓名(当前迭代)与之前的学生(前一次迭代)不同,例如但继续下一个ng-repeat
为当前行创建其他单元格。
我想知道外ng-repeat
条件是否错误,而不是它是否转到内ng-repeat
?
之前,建议更改数据结构,我想有人请告诉我是否可以从前端获取?
<tr ng-repeat="student in students">
<td style="text-align: left;" width="296;">{{student.FirstName}} {{student.LastName}} <small class="" style="color: #999999;">({{student.Role}})</small></td>
<td width="100px" ng-repeat="subject in student.subject">
<input ng-disabled="!subject.Enrolled" ng-change="savestudentSubject(subject, student)" ng-model="student.Checked" type="checkbox"></td>
</tr>
答案 0 :(得分:1)
我认为你想要的只是以下内容:
<tr ng-repeat="student in students">
<td style="text-align: left;" width="296;">
<!-- Check if same student -->
<span ng-if="students[$index - 1].id != student.id">
{{student.FirstName}} {{student.LastName}} <small class="" style="color: #999999;">({{student.Role}})</small>
</span>
</td>
<td width="100px" ng-repeat="subject in student.subject">
<input ng-disabled="!subject.Enrolled" ng-change="savestudentSubject(subject, student)" ng-model="student.Checked" type="checkbox"></td>
</tr>
检查当前学生是否与前一个学生相同。如果是,则不显示名称,但会显示主题。
或者,你可以使用&#39; groupBy&#39;使用'angular-filter' module对学生进行分组,例如使用相同的ID:
<tr ng-repeat="(key, student) in students | groupBy: 'id'">
<td style="text-align: left;" width="296;">{{ student.FirstName }} {{student.LastName}} <small class="" style="color: #999999;">({{student.Role}})</small></td>
<td width="100px" ng-repeat="subject in student.subject">
<input ng-disabled="!subject.Enrolled" ng-change="savestudentSubject(subject, student)" ng-model="student.Checked" type="checkbox"></td>
</tr>
JSBIN(对于ng-repeat-start和-end有点hacky,可能会做得更好)