繁体   English   中英

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/

我怀疑您获取的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.4.8)

我不知道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:

http://jsfiddle.net/akonchady/a25r1mm4/3/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM