我有NG-重複內部指令。而且我在數組項目的變化順序中有切換功能。當我顯示範圍模型時,我看到那些項目改變了他們的順序,但UI沒有更新。嘗試範圍。$ apply()但它表示進程繁忙。AngularJs指令視圖不更新的NG-重複
.directive('example', function() {
return {
restrict: 'E',
transclude: true,
template: `
Checking model: {{model}}
<div ng-repeat="(key, row) in model">
<div ng-hide="key == 0">
<div class="icon-arrow-u" ng-hide="$first" ng-click="moveUp(key)"></div>
<div class="icon-delete" ng-click="removeCell(key)"></div>
<div class="icon-arrow-d" ng-hide="$last" ng-click="moveDown(key)"></div>
</div>
</div>
</div>
`,
scope: {
model: '='
},
link: function(scope, element) {
scope.moveItem = function (origin, destination) {
var temp = scope.model[destination];
scope.model[destination] = scope.model[origin];
scope.model[origin] = temp;
};
scope.moveUp = function(index) {
scope.moveItem(index, index - 1);
}
scope.moveDown = function(index) {
scope.moveItem(index, index + 1);
}
}
}
})
「通過鑰匙追蹤」工作。奇怪的原因,當我試圖「追蹤$索引」它沒有做任何改變。謝謝! – user256968
這是因爲你正在遍歷一個對象。另外,「track by $ index」只有在元素索引不會改變時纔有效。 – Christoph