簡體   English   中英

如何使用ng-repeat $ index在數組中查找元素

[英]How to use ng-repeat $index to find element in array

在我的$ scope中,我有一個屬性,其中包含一系列汽車,命名$scope.cars 用戶可以刪除汽車。 我將汽車的$ index(由ng-repeat創建)作為參數傳遞給刪除函數deleteThis ,但是在接收參數$index JavaScript函數中,我不知道如何使用ng-repeat創建的索引來查找從$ scope.cars中刪除的汽車,因為$ index不是$ scope.cars的本機部分。 請告訴我如何

$scope.deleteThis = function($event, $index){
   // how can I use $index to find car in $scope.cars to delete

}

<div ng-repeat="car in cars">   
<div class="row">
<div class="col-md-1"><h2>{{car.name}}</h2>{{car.make}}</div>

<div class="col-md-2"></div>
<span class="delete" ng-click="deleteThis($event, $index)">x</span>
</div>

您不需要使用索引,只需傳遞對象car並將其拼接即可。

<span class="delete" ng-click="deleteThis(car)">x</span>

$scope.deleteThis = function(car){
   var cars = $scope.cars;
   cars.splice(cars.indexOf(car), 1);
}

您也可以使用$ index(但是,當您將諸如orderBy之類的過濾器或任何其他與ng-repeat表達式組合的過濾器一起使用時,使用$ index會比較棘手,$ index可能不是原始數組中的實際索引)。 $index不會附加到重復對象,但會附加到ng-repeat創建的子范圍。 如果要在ng-repeat中重用部分視圖,則通過car比使用$ index更具可讀性和明確性,並且更具可重用性。

如果您仍要使用索引,請執行以下操作:

$scope.deleteThis = function(index){
    $scope.cars.splice(index, 1);
}

暫無
暫無

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

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