簡體   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