从angularJS中的键中检索值

时间:2014-12-08 11:56:06

标签: json angularjs key-value

我有像这样的json数据

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

现在我想通过“directorname”键检索值。

是否可以在不使用重复语法的情况下在AngularJS中检索值?

注意:我想在视图中显示值(html)。

data {“fields”:[“directorname”,“template_post_type”]}

查看结构:

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

2 个答案:

答案 0 :(得分:2)

假设arr变量包含数据,有一种获取价值的方法:

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

我认为纯粹的角度方式是使用$ filter从arr中提取所需的元素:

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

......但我认为,对于这么简单的操作来说太过分了。

答案 1 :(得分:1)

您可以使用angular.fromJsonArray.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示例。