3

我有一个 json 对象数组

$scope.arrary = [{"a":"value"},{"b":"value2"},{"c":"value3"}];

$scope.secondObje = {"a":"this is updated value","b":"this is new value"}

我可以使用迭代“数组”

<div ng-repeat="(key,value) in array">

现在我如何使用键访问第二个对象的值

我想要类似的东西{{secondObje.key}},我怎么能在角度上做到这一点。

这样我就可以"this is updated value"打印"this is new value"出来了。

请帮我。

4

1 回答 1

10

您的代码失败,因为$scope.arrary它是一个数组,因此keyin<div ng-repeat="(key,value) in arrary">为您提供从 0(即 0、1、2)开始的索引,而不是您想要的字母(a、b、c)。

选项 1: 处理此问题的一种方法是更改​​格式,$scope.arrary以便您拥有

$scope.arrary = [{"key":"a", "value":"value"},{"key":"b", "value":"value2"},{"key":"c", "value":"value3"}];

然后,您可以将第二个对象上的键用作

<div ng-repeat="a in arrary">
    {{ secondObje[a.key] }} <br>
</div>

选项 2: 但是,如果您想保持$scope.arrary原样,您可以使用第二个对象上的键作为

<div ng-repeat="a in arrary">
    <div ng-repeat="(key, value) in a">
        {{ secondObje[key] }} <br>
    </div>
</div>

演示

这是这些的工作演示:http: //jsfiddle.net/5NzZX/119/

我更喜欢第一个选项。

于 2013-09-11T09:38:56.887 回答