我有一个带有键值结构的列表,该结构存储来自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”,但是我不知道如何根据我的结构来实现这一点。
答案 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>
答案 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>
它......:)