Angularjs: как использовать ключ объекта для получения значения другого объекта json

у меня есть массив объектов 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}}, как я могу сделать это в angular.

чтобы я распечатал "this is updated value" и "this is new value".

Пожалуйста помогите.


person Shahzeb Khan    schedule 11.09.2013    source источник
comment
может быть : {{secondObje[key]}} ?   -  person Ivan Chernykh    schedule 11.09.2013


Ответы (1)


Ваш код не работает, потому что $scope.arrary является массивом, поэтому key в <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/.

Я предпочитаю первый вариант.

person kubuntu    schedule 11.09.2013