2017-06-15 54 views
-1

如果我有,例如數組:在AngularJS ngRepeat指令獲取集合名稱

$scope.users = [ 
    John: { 
     age: 18, 
     genre: 'male', 
     type: 'admin' 
    }, 
    Paul: { 
     age: 22, 
     genre: 'male', 
     type: 'admin' 
    } 
]; 

我怎樣才能獲得用戶名時,我ngRepeat循環?

<li ng-repeat="user in users"> 
    {{ }} <!-- Name Here --> 
    {{ user.age }} <br> 
    {{ user.genre }} <br> 
    {{ user.type }} 
</li> 

謝謝!

+1

僅供參考,這是一個無效的JSON陣! –

回答

1

1)你在你的代碼錯誤:您的陣列應該是一個對象,因爲它具有鍵John, Paul ...

2)ngRepeat可以iterate over object properties like (key, value) in obj

下面是工作示例:

angular.module('myApp', []) 
 
.controller('MyCtrl', ['$scope', function MyCtrl($scope) { 
 
    var ctrl = this; 
 
    
 
    ctrl.users = { 
 
     John: { 
 
      age: 18, 
 
      genre: 'male', 
 
      type: 'admin' 
 
     }, 
 
     Paul: { 
 
      age: 22, 
 
      genre: 'male', 
 
      type: 'admin' 
 
     } 
 
    }; 
 
    
 
    
 
}]);
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="//code.angularjs.org/1.6.2/angular.js"></script> 
 

 
<div ng-app="myApp"> 
 
    <div ng-controller="MyCtrl as $ctrl"> 
 
    <ul> 
 
     <li ng-repeat="(key, user) in $ctrl.users track by $index"> 
 
     {{ key }} 
 
     {{ user.age }} <br> 
 
     {{ user.genre }} <br> 
 
     {{ user.type }} 
 
     </li> 
 
    </ul> 
 
    </div> 
 
</div>

0

您可以使用Object.keys(users)得到一個數組的值[「保」,「約翰」]

<li ng-repeat="user in users track by $index"> 
    {{ Object.keys(users)[$index] }} 
    {{ user.age }} <br> 
    {{ user.genre }} <br> 
    {{ user.type }} 
</li> 

這不是測試,但我認爲這應該是一起的,你需要什麼樣的線。