簡體   English   中英

Angular的奇怪數組行為

[英]Strange array behaviour with Angular

我在控制器中有一個二維數組:

var MainController = function($scope) {
    $scope.board = [[1, 2, 3, 4],
                    [5, 6, 7, 8],
                    [9, 10, 11, 12],
                    [13, 14, 15, 16]];
};

我想將其顯示為表格:

<table>
    <tr ng-repeat="line in board">
        <td ng-repeat="cell in line">
            {{ cell }}
        </td>
    </tr>
</table>

所有人都可以使用此代碼正常工作,但是如果我更改電路板上的數據以使該行(內部陣列)中的兩個單元相同,則該行消失。 因此,如果我將控制器更改為:

    $scope.board = [[1, 2, 3, 4],
                    [5, 6, 7, 7],
                    [9, 10, 11, 12],
                    [13, 14, 15, 16]];

第二行消失。

為什么以及如何解決?

它會將相同的值視為重復項。 track by按以下語法添加track by修改視圖

<table>
    <tr ng-repeat="line in board track by $index">
        <td ng-repeat="cell in line track by $index">
            {{ cell }}
        </td>
    </tr>
</table>

這個

將導致項目通過它們在數組中的位置而不是它們的值被鍵控

請參閱中繼器中的重復密鑰

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM