2015-06-08 32 views
0

我正在使用以下ng-repeat聲明。如何把條件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

如果外部ng-repeat不提供'student'對象,那麼inner將不會執行任何操作。 – Peter

+0

我相信如果你確實使用'ng-if'來有條件地顯示一個元素,'ng-repeat'不會用重複對象填充那個元素。 –

+0

你可以使用過濾器,並從學生 – user902383

回答

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> 

這用來檢查當前的學生是一樣的前一個。如果是,則不要顯示名稱,但要顯示主題。

或者,你可以僅僅通過相同的ID使用「GROUPBY」分組學生與'angular-filter' module,例如:

<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重複啓動和末端哈克,可能可以做得更好)

+0

如果當前學生是相同的前一個不是創建新行而是在新單元格中的前一個創建行中顯示主題名稱。你找到我了嗎? – immirza

+0

我以爲他的意思是在外部重複上添加條件......否則這就是解決方案 –

+0

@devqon,即時獲取錯誤錯誤:[$ injector:unpr] http://errors.angularjs.org/1.3.0/$注入/未註冊?p0 = groupByFilterProvider%20%3C-%20groupByFilter – immirza