AngularJs:迭代键值对的奇怪结果
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/
我不知道你想做什么,但你可以创建这样的逻辑——它可能对你有用,它是一些硬编码的工作,但会相应地更改
$scope.test = []
$scope.test.push(arr["abc1/xyz/../"]+arr[""]+arr["abc1/xyz/../"]);
在ng重复中使用测试..:)
或者你可以用你的代码做我知道的事情,对你的代码使用这样的ng重复:
<div ng-repeat="test in arr">
<div ng-repeat="test2 in test">
{{test2}}
</div>
我不知道Pankaj关于空键值是否正确。但可以肯定的是,$scope.arr
不是一个数组,而是一个对象。因此,您的代码应该是:
<div ng-repeat="(key, value)in arr track by $index">
<h3 ng-repeat=" item in value">
{{item}}
</h3>
</div>
我怀疑您得到的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中尝试了上面的代码,它运行良好。
工作Fiddle(Angular 1.4.8)
您需要用以下内容替换HTML代码:
<div ng-repeat="test in arr track by $index">
<div ng-repeat="item in test">
{{item}}
</div>
</div>
我正在得到结果。请检查以下JSFiddle:
http://jsfiddle.net/akonchady/a25r1mm4/3/
相关文章:
- 正在数组中存储键值对
- 如何将新的键/值对元素添加到现有数组
- 在键值对中对求和值进行下划线
- 返回由键/值对定义的数组
- 在url参数javascript中存储键值对列表
- 将数组转换为键值对
- jQueryAJAX-将额外的键/值对推送到序列化的$_POST数组中
- 使用jQuery从ajax调用访问键值对
- 将动态键值对传递给函数
- d3使用键值对对对多个值的数据进行分组
- JS在封装对象中查找键值对
- 从html标记格式的字符串中提取键值对
- JavaScript 在函数中声明键值对
- 在JavaScript中为表单元素生成键值对
- 如何给$('inputs')每个函数,以将数据存储为 asp.net 中的键值对
- 从 JSON 获取键值对而不使用 .(DOT) 在 Java 脚本或 jquery 中
- 在键值对的唯一组合上合并对象
- 动态插入并从数组中检索键值对 - Javascript
- Javascript:添加键值对文字,给出未定义的结果
- AngularJs:迭代键值对的奇怪结果