我有像这样的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>
答案 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.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示例。