【发布时间】:2018-03-15 15:52:34
【问题描述】:
对 ul 中的列表项使用 ng-repeat 以重复 employeePayments 数组中的项,通过 $stateParams 访问并存储在 $scope.employeePayments 中。
每当我单击一个项目的删除按钮时,根据我尝试设置拼接功能的两种方式,它要么删除数组中的第一项或最后一项,而不是删除选定的项目通过它在数组中的索引找到它。
第一种方法 - 总是删除第一项:
$scope.deleteEmployeePaymentRow = function(employeePayment) {
$scope.employeePayments.splice(employeePayment, 1);
}
第二种方法 - 总是删除最后一项:
$scope.deleteEmployeePaymentRow = function(employeePayment) {
var index = $scope.employeePayments.indexOf(employeePayment);
$scope.employeePayments.splice(index, 1);
}
-
ng-重复 HTML:
<tr data-ng-repeat="employeePayment in employeePayments">
<td>{{employeePayment.code}}</td>
<td>{{employeePayment.paymentType}}</td>
等等……
-
删除按钮 HTML:
<a data-ng-click="deleteEmployeePaymentRow(employeePayment)">Delete Payment</a>
【问题讨论】:
-
第二种方法应该有效。它可能会失败,因为
employeePayment不在数组中,所以indexOf返回-1,使您的函数删除最后一个元素。你能向我们展示整个 HTML 部分吗?你也可以console.log(employeePayment)看看它到底是什么。 -
将employeePayment记录到控制台只返回undefined
标签: javascript angularjs arrays