我有一个ng-repeat,它遍历一个JSON并呈现一个表格。我想要做的是迭代JSON本身的值。但它的行为就像一个字符串。
<tr
ng-repeat="(key,value) in event.kibana._source track by $index"
ng-class-odd="'odd'">
<td>{{key}}</td>
<td>
<span>{{value}}</span>
<span ng-repeat="(k,val) in value track by $index">{{k}}|{{val}} </span>
</td>
</tr>
“value”是一个JSON。 td中的结果如下所示:
{“bezeichnung”:“Basis”,“name”:“Basis”,“id”:16} 0 | {1 |“2 | b 3 | e 4 | z 5 | e 6 | i 7 | c 8 | h 9 | n 10 | u 11 | n 12 | g 13 |“14 |:15 |” 16 | B 17 | a 18 | s 19 | i 20 | s 21 |“22 |,23 |” 24 | n 25 | a 26 | m 27 | e 28 |“29 |:30 |” 31 | B 32 | a 33 | s 34 | i 35 |第36 |“37 |,38 |” 39 | i 40 | d 41 |“42 |:43 | 1 44 | 6 45 |}
当然这不是我想要的。我想迭代JSON而不是字符串。我怎么能这样做?
编辑:
这就是JSON的样子:
{
"fold":11,
"id":64894760,
"entities":[{"bezeichnung":"Basis","name":"Basis","id":16}]
}
答案 0 :(得分:0)
你必须解析JSON。(例如JSON.parse(yourString))https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
答案 1 :(得分:0)
尝试删除track by $index
。请阅读此处的文档:ngRepeat
<tr id="{{key}}"
ng-repeat="(key,value) in event.kibana._source"
ng-class-odd="'odd'">
<td>{{key}}</td>
<td>
<span>{{value}}</span> //array of objects, [{"bezeichnung":"Basis","name":"Basis","id":16}]
<div ng-repeat="val in value track by val.id"> //single value in 'value' array
<span ng-repeat="(k,v) in val track by k">{{k}}|{{v}} </span>
</div>
</td>
</tr>
问题是“value”是一个对象数组,你有“基础”作为两个键的值。因此,如果使用对象中的键进行跟踪,AngularJS可以区分。 我认为“id”键对于特定值是唯一的。