提问者:小点点

如何在AngularJS中用ng-repeat迭代键和值?


在我的控制器中,有如下数据:$scope.object=data

现在,该数据是包含JSON中的键和值的字典。

我可以使用模板中的object.name访问属性。有没有任何方法,我可以迭代的键以及和显示他们在表中,如

;{{key}};;data.key

数据是这样的

{
    "id": 2,
    "project": "wewe2012",
    "date": "2013-02-26",
    "description": "ewew",
    "eet_no": "ewew",
}

共3个答案

匿名用户

不如:

<table>
  <tr ng-repeat="(key, value) in data">
    <td> {{key}} </td> <td> {{ value }} </td>
  </tr>
</table>

此方法在以下文档中列出:https://docs.angularjs.org/api/ng/directive/ngrepeat

匿名用户

如果要用双向绑定编辑属性值:

<tr ng-repeat="(key, value) in data">
    <td>{{key}}<input type="text" ng-model="data[key]"></td>
</tr>

匿名用户

我不认为angular中有一个内置函数来实现这一点,但是您可以通过创建一个包含所有头名称的单独的scope属性来实现这一点,并且您可以像下面这样自动填充该属性:

var data = {
  foo: 'a',
  bar: 'b'
};

$scope.objectHeaders = [];

for ( property in data ) {
  $scope.objectHeaders.push(property); 
}

// Output: [ 'foo', 'bar' ]