2014-12-08 6 views
0

У меня есть данные JSON, как этотПолучить значение из ключа в angularJS

[{ 
    "ID":699, 
    "key":"directorname", 
    "value":"SampleValue"} 
,{ 
    "ID":700, 
    "key":"template_post_type", 
    "value":"Sample2ndValue"}] 

Сейчас, например, я хочу, чтобы получить значение по ключу «directorname».

Возможно ли получить значение в AngularJS без использования синтаксиса повторения?

Примечание: Я хочу показать значение в виде (html).

данных { "полей": [ "directorname", "template_post_type"]}

вид структуры:

<div ng-repeat="thekey in data.fields">       
     <span>here for value</span> 
    </div> 
+2

Нет, вам понадобится некоторый цикл –

ответ

1

Вы можете использовать angular.fromJson и Array.prototype.filter методы:

var a = '[{"ID":699,"key":"directorname","value":"SampleValue"},{"ID":700,"key":"template_post_type","value":"Sample2ndValue"}]'; 
var objArr = angular.fromJson(a).filter(function(item) { 
    if (item.key === "directorname") { 
     return true; 
    } 
}); 
console.log(objArr[0].value); 

Этот вариант может найти все значения удовлетворяют условию key === "directorname".

Пример: jsfiddle.

+0

Как я могу использовать это в представлении? – Amin

+0

@ Пример здесь: http://jsfiddle.net/tq75ndm3/8/ – xio4

2

Предполагая, что arr переменная имеет данные, есть один способ, чтобы получить значение:

var val, i = arr.length; 
while (i--) { 
    if (arr[i].key === 'directorname') { 
    val = arr[i].value; 
    break; 
    } 
} 

Чисто угловыми МОГЛО образом, я полагаю, было бы извлечение требуемых е lement от arr с $ фильтром:

var val = $filter('filter')(arr, {key: 'directorname'}, true)[0].value; 

... но это, я полагаю, слишком много для такой простой операции.

+0

Да, вот так –

Смежные вопросы