[英]AngularJs:Strange result in iterating key value pair
我有一个角度数组如下
$scope.arr={
"abc/xyz/../": [
"a1.txt",
"a2.txt",
"a3.txt"
],
"": [
"no-folder.txt"
],
"abc1/xyz/../": [
"a4.txt",
"a5.txt",
"a6.txt"
]
}
我想遍历此数组,需要获得如下结果
"a1.txt",
"a2.txt",
"a3.txt"
和
"no-folder.txt"
和
"a4.txt",
"a5.txt",
"a6.txt"
我已经尝试过如下
<div ng-repeat="test in arr track by $index">
<h3 ng-repeat="(key, value) in test">
{{value}}
</h3>
</div>
但是我得到了奇怪的结果,因为每个角色都来了。 您可以帮忙吗?
更新请查看此小提琴https://jsfiddle.net/771voyj6/8/
我怀疑您获取的JSON无效。 对象的第二个第二个属性是""
(空白),它将是无效的JSON。
JSON格式
{
"abc/xyz/../": [
"a1.txt",
"a2.txt",
"a3.txt"
],
//in below line json has no key
"": [
"no-folder.txt"
],
"abc1/xyz/../": [
"a4.txt",
"a5.txt",
"a6.txt"
]
}
更新资料
抱歉,关于JSON的概念错误,在JSON之上是有效的JSON(但从技术上讲,JSON不应包含空白键)。 我在Fiddle中尝试了上面的代码,效果很好。
我不知道Pankaj关于空键值是否正确。 但是可以肯定的是,您的$scope.arr
不是数组而是对象。 因此,您的代码应为:
<div ng-repeat="(key, value)in arr track by $index">
<h3 ng-repeat=" item in value">
{{item}}
</h3>
</div>
我不知道您想做什么,但是您可以创建类似这样的逻辑,它可能对您有用,它的一些硬编码的工作,但是要相应地进行更改
$scope.test = []
$scope.test.push(arr["abc1/xyz/../"]+arr[""]+arr["abc1/xyz/../"]);
在ng-repeat中使用test .. :)
或者您可以使用代码执行ng-repeat来执行我所知道的代码:
<div ng-repeat="test in arr">
<div ng-repeat="test2 in test">
{{test2}}
</div>
您需要使用以下代码替换HTML代码:
<div ng-repeat="test in arr track by $index"> <div ng-repeat="item in test"> {{item}} </div> </div>
我得到结果。 请检查以下JSFiddle:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.