说我有
<div ng-repeat="item in scope.allItems">
<div ng-click="doSomething(...)"></div>
</div>
如果我想在点击时对 item
执行某些操作,哪个是更好的选择?
选项 1
使用 ng-click="doSomething($index)
并具有:
$scope.doSomething = function($index) {
var myItem = $scope.allItems[$index];
}
选项 2
使用ng-click="doSomething(item)
并具有:
$scope.doSomething = function(myItem) {
// Do whatever
}
最佳答案
如果您只是对项目执行某些操作,请将其传入。这样该函数就不需要知道该项目属于哪个数组:
$scope.addColor = function(car) {
car.color = 'red';
};
另一方面,如果您需要修改数组,我更愿意传入 $index 并不必循环遍历数组寻找匹配项:
$scope.deleteCar = function(index, cars) {
cars.splice(index, 1);
};
关于AngularJS - 通过 ng-click 传递 $index 或项目本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23284093/