[英]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.