Angularjs:如何使用对象的键来检索另一个json对象的值

Sha*_*han 3 angularjs angularjs-directive angularjs-ng-repeat

我有一个json对象数组

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

$scope.secondObje = {"a":"this is updated value","b":"this is new value"}
Run Code Online (Sandbox Code Playgroud)

我可以使用迭代遍历'数组'

<div ng-repeat="(key,value) in array">
Run Code Online (Sandbox Code Playgroud)

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

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

所以我得到"this is updated value""this is new value"打印.

请帮我.

kub*_*ntu 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"}];
Run Code Online (Sandbox Code Playgroud)

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

<div ng-repeat="a in arrary">
    {{ secondObje[a.key] }} <br>
</div>
Run Code Online (Sandbox Code Playgroud)

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

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

DEMO

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

我更喜欢第一种选择.