我有一个角度数组如下
$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/
答案 0 :(得分:2)
我怀疑你得到的JSON是无效的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中尝试了上面的代码,工作正常。
答案 1 :(得分:2)
我不知道Pankaj对于空键值是否正确。但当然你的$scope.arr
不是数组而是对象。
因此,您的代码应该是:
<div ng-repeat="(key, value)in arr track by $index">
<h3 ng-repeat=" item in value">
{{item}}
</h3>
</div>
答案 2 :(得分:2)
我不知道你想做什么,但你可以创建这样的逻辑,它可能适合你,它的一些硬编码工作,但相应地改变它
$scope.test = []
$scope.test.push(arr["abc1/xyz/../"]+arr[""]+arr["abc1/xyz/../"]);
在ng-repeat中使用测试..:)
或者您可以使用您的代码执行我所知道的代码,使用ng-repeat代码来代码:
<div ng-repeat="test in arr">
<div ng-repeat="test2 in test">
{{test2}}
</div>
答案 3 :(得分:0)
您需要使用以下内容替换HTML代码:
<div ng-repeat="test in arr track by $index">
<div ng-repeat="item in test">
{{item}}
</div>
</div>
我得到了结果。请检查以下JSFiddle: