我的HTML:
<section ng-repeat="Rule in Data track by $index" ng-if="!Rule.is_deleted">
{{$index}}
{{ Rule.title }}<a ng-click="removeElem($index)"></a>
</section>
和控制器:
$scope.removeElem = function (elemIndex) {
$scope.Data[elemIndex].is_deleted = true;
}
$scope.addElem = function(obj) {
$scope.Data.push(obj);
}
有添加/移除的對象的功能性/從$scope.Data
數組。假設$ scope.Data中有兩個項目;我正在刪除一個並添加一個新的。因此,這些項目仍然是兩個。問題是,$ index將新創建的第二個項目與值2相關聯,而不是像我預期的那樣將值1關聯(ng-if從DOM刪除項目,是不是?)。爲什麼?如果刪除某件商品,我如何要求$指數降低其價值?
我不是太確定你在問什麼,你的情況下的$ index是正確的,「$ index將新創建的第二個項目與值2相關聯,而不是值1」,它應該是2,數組中現在有3個項目, '[0,1,2]'。 '1'已被'邏輯'刪除,但仍然存在,即新創建的項目具有索引「2」。 – TheSharpieOne