【问题标题】:Display keys and values with Angular array使用 Angular 数组显示键和值
【发布时间】:2014-08-01 20:21:30
【问题描述】:

我在 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'

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

【问题讨论】:

    标签: javascript arrays angularjs angularjs-ng-repeat


    【解决方案1】:

    1。使用嵌套的ng-repeats。

    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

    【讨论】:

    • 啊嵌套ng-repeats!我不知道你能做到这一点。谢谢,但是现在有没有办法使用密钥来调用额外的数组?像{{key}}.question,但{{key}} 被视为字符串,因此它与调用item.question 相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-27
    • 2017-10-26
    • 1970-01-01
    • 2018-11-13
    相关资源
    最近更新 更多