使用Angular数组显示键和值

时间:2014-08-01 10:49:34

标签: javascript arrays angularjs angularjs-ng-repeat

我在Angular中有一个像这样的数组:

$scope.test = [
  {'item1' : 'answer1' },
  {'item2' : 'answer2' },
  {'item3' : 'answer3' }
];

等等......

现在有两件事我想做。首先,我想使用ng-repeat来遍历数组并分别显示键和值。我试过这个:

<div ng-repeat="(key,value) in test">
  {{key}} = {{value}}
</div>

但是这会产生这样的结果:

0  = {"item1" : "answer1"}
1  = {"item2" : "answer2"}
2  = {"item3" : "answer3"}

我希望它显示如下:

item1  = answer1
item2  = answer2
item3  = answer3

我要做的第二件事是使用键来显示来自不同阵列的结果。例如,我有这个数组:

$scope.item1.question = 'some question';

因此,当我要完成ng-repeat时,我想做这样的事情:

{{key}}.question

显示字符串'some question'

但这并没有做任何事......

1 个答案:

答案 0 :(得分:3)

1。使用嵌套的ng-repeat s。

ng-repeat仅循环遍历数组,因此它将元素的索引写为键。您需要嵌套另一个ng-repeat来迭代所包含的对象:

<div ng-repeat="obj in test">
    <div ng-repeat="(key,value) in obj">
        {{key}} = {{value}}
    </div>
</div>

2。使用方括号表示法和对象包装器。

要使用来自ng-repeat内另一个对象的动态密钥访问对象,请使用允许表达式的数组表示法:

$scope.model = {
    item1: {
        question : 'some question 1'
    },
    item2: {
        question : 'some question 2'
    },
    item3: {
        question : 'some question 3'
    }
}; 

HTML:

<div>
    {{ model[key].question }}
</div>

<强> Fiddle