使用AngularJS

时间:2016-05-24 16:39:27

标签: javascript angularjs

我有一个带有键值结构的列表,该结构存储来自JSON结构的数据,我想在带有ng-repeat的表中打印这些数据。

var data = [
          {
            id: 1,
            name : "Peter",
            lastname : "Smith",
            age : 36
          }, {
            id: 2,
            name : "Peter",
            lastname : "Smith",
            age : 36
          }
        ];

        $scope.itemDictionary = {};
        angular.forEach(data, function(item){
            var obj = {};
            var valObj = {};

            valObj.name = item.name;
            valObj.lastname = item.lastname;
            valObj.age = item.age;

            obj[item.id] = valObj;
            if(!$scope.itemDictionary[item.id]){
                 $scope.itemDictionary[item.id] = obj;
            }
        });

我知道它应该是 ng-repeat =“d in table”,但是我不知道如何根据我的结构来实现这一点。

2 个答案:

答案 0 :(得分:1)

使用ng-repeat="(key,value) in itemDictionary"

<div ng-app="exampleApp">
    <div ng-controller="ExampleController">

        {{itemDictionary}}

        <div ng-repeat="(key,value) in itemDictionary track by key">
            <h1>ID: {{key}}</h1>
            <h1>Name: {{value[$index + 1].name}}</h1>
            <h1>Lastname: {{value[$index + 1].lastname}}</h1>
            <h1>Age: {{value[$index + 1].age}}</h1>
        </div>

    </div>
</div>

示例:http://codepen.io/gpincheiraa/pen/vGoqzr

答案 1 :(得分:1)

我不知道,但你为什么要使用这么多不必要的哈希。 您只需将json数据分配给任何范围变量,然后在视图中使用它。 示例 - :

//inside controller...
 var data = [
      {
        id: 1,
        name : "Peter",
        lastname : "Smith",
        age : 36
      }, {
        id: 2,
        name : "Peter",
        lastname : "Smith",
        age : 36
      }
    ];

   $scope.itemDictionary = data;


 //inside view...

<table>
 <tr id="{{item.id}}" ng-repeat="item in itemDictionary">
   <td>{{item.id}}</td>   
   <td>{{item.name}}</td>
   <td>{{item.lastname}}</td>
   <td>{{item.age}}</td>
 </tr>
</table>

它......:)