2014-02-14 141 views
0

我對用戶的可用性數據的按小時數天的形式的負載:AngularJS嵌套NG-重複在表

availData = { "date1":arrayOfUsers, "date2":arrayOfUsers, ... } 

arrayOfUsers= [ userArray, userArray, ... ] 

userArray= [ "username", "h0", "h1", "h2", ... "h23" ] 

我以該形式具有arrayOfUsers,所以我可以根據對它們進行排序他們的「h0」..「h23」值。 這一切工作正常的一個看法,但我現在想用相同的數據,並創建包含表爲一個選擇「用戶名」下面:

date1 h0 h1 h2 ... h23 
date2 h0 h1 h2 ... h23 
... 

到目前爲止,我可以做到這一點,其工作原理:

<!-- rows of avail data... --> 
<tr ng-repeat="(aDay,aUsers) in allAvailData track by $index"> 
<td >{{aDay}}</td> 
<td ng-repeat="aUser in aUsers" ng-show="aUser[0]=='YR005'" > 
    <span ng-repeat="hour in aUser track by $index" ng-show="!$first">{{hour}} 
    </span> 
</td> 
</tr> 

給予2列的錶行:"date" "h0h1h2h3h4"

但我真正想要的是獨立的條目......這不起作用

<!-- rows of avail data... --> 
<tr ng-repeat="(aDay,aUsers) in allAvailData track by $index"> 
<td >{{aDay}}</td> 
<span ng-repeat="aUser in aUsers" ng-show="aUser[0]=='YR005'" > 
    <td ng-repeat="hour in aUser track by $index" ng-show="!$first">{{hour}}</td> 
</span> 
</tr> 

我一直沒有使用角度很長,我想知道這種事情是否可能,而不是隻是將數據重組到另一個數組。

的問題是:

  1. 爲什麼在嵌套NG-重複的嘗試不起作用?
  2. 我可以以另一種方式嵌套ng-repeat嗎?
  3. 我接近這一切都錯了嗎?
+0

您是否考慮過在一個數據結構中結合'availData','arrayOfUsers'和'userArray'? – kubuntu

+0

它們都在一個數據結構中 - 你的意思是調平它嗎? – TonyWilk

回答

2

,如果你這樣做

<tr ng-repeat="(aDay,aUsers) in allAvailData track by $index"> 
    <td >{{aDay}}</td> 
    <td ng-repeat="hour in getSelectedUser() track by $index" ng-show="!$first">{{hour}}</td> 
</tr> 

實現getSelectedUser方法,從一個arrayofusers根據您的過濾邏輯返回單個項目它應該工作。

+0

嗯,是的 - 這可以避免我在ng-repeat的3個級別上的嘗試,謝謝 – TonyWilk

+0

您也可以將此選定的用戶定義爲您範圍內的屬性,並根據特定事件進行更新。 – Chandermani

+0

好的解決方案 - 再次感謝 – TonyWilk