gpt4 book ai didi

javascript - 如何使用 ng-repeat $index 在数组中查找元素

转载 作者:行者123 更新时间:2023-11-30 10:08:08 26 4
gpt4 key购买 nike

在我的 $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>

最佳答案

不需要使用index,直接传对象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 创建的子作用域。传递 car 与使用 $index 相比更具可读性和明确性,如果您要在 ng-repeat 中重用部分 View ,则可重用性更高。

如果你仍然使用索引,那么就这样做:

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

关于javascript - 如何使用 ng-repeat $index 在数组中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28079295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com