2015-04-07 14 views
0

嗨,這個表格顯示角JS。用ng-repeat顯示包含ng-repeat的表格

<div class="table-responsive ">  
<table class="table table-bordered table-hover"> 
       <thead> 
        <tr> 
         <th>Nom</th> 
         <th>Pr&eacutenom</th> 
         <th>login</th> 
         <th>email</th> 
         <th>group</th> 
        </tr>   
        </thead> 

       <tbody> 
        <tr ng-repeat="user in allusers "> 
         <td>{{ user.lastname}}</td> 
         <td>{{ user.firstname}}</td> 
         <td>{{ user.login}}</td> 
         <td>{{ user.email }}</td> 
         <td> 
          <select class="form-group" 
          ng-click="getAllGroupsofUser(user.id)"> 
      <option ng-repeat="group in groupsofuser">{{group.name}}</option> 
         </select> 
         </td> 
        </tr> 

       </tbody>   
    </table> 
    </div> 

我使用的是AngularJS的REST風格的Web服務。當我點擊select(在列組中的特定用戶行中)時,我得到正確的列表,但問題是所有列組都會更改,並且具有相同的選擇選項。

我該如何解決這個問題?

+1

你的用戶對象是什麼樣的?應該是'group in user.groupsofuser'? – tymeJV

+0

這很好...你正在迭​​代的數組看起來像什麼?您可以發佈從服務中收到的數據樣本嗎? – tymeJV

+0

問題是'user'的所有行共享相同的$ scope.groupsofuser。 – yazaki

回答

0

問題是user的所有行共享相同的$scope.groupsofuseruser需要分別擁有自己的groupsofuser

下面的代碼(沒有測試)可能會達到你想要的。

這是html。

<table> 
    <tbody> 
     <tr ng-repeat="user in allusers"> 
      <td>{{user.lastname}}</td> 
      <td> 
       <select ng-click="getAllGroupsofUser(user)"> 
        <option ng-repeat="group in user.groupsofuser">{{group.name}}</option> 
       </select> 
      </td> 
     </tr> 
    </tbody>   
</table> 

這是控制器代碼。

$scope.getAllGroupsofUser = function(user){ 
    user.groupsofuser = someservice_use_rest(user.id); 
}; 

我希望這可以幫助你。祝你好運!!

+0

對不起,但我還有一個問題。這種方式,直到我點擊選擇,我纔得到清單。是否有另一種方式來自動填充它 – Yuri

+0

我會建議在加載$ scope.allusers的同時填充它。 – yazaki