Angularjs 如何在indexOf()中传递值?
在这段代码中,“m”是在indexOf函数中编写的。但在代码中没有传递值的位置。我无法理解此“m”如何删除ng repeat中的正确项。当我把“m”换成其他东西时,它现在正在工作。我对AngularJS是新手。 在main.js文件中有removeitem函数,我从'm'值的来源处获取,它从任何地方传递。我试图删除“m”,但它不起作用,它删除了最后一项Angularjs 如何在indexOf()中传递值?,angularjs,Angularjs,在这段代码中,“m”是在indexOf函数中编写的。但在代码中没有传递值的位置。我无法理解此“m”如何删除ng repeat中的正确项。当我把“m”换成其他东西时,它现在正在工作。我对AngularJS是新手。 在main.js文件中有removeitem函数,我从'm'值的来源处获取,它从任何地方传递。我试图删除“m”,但它不起作用,它删除了最后一项 var-app=angular.module('myApp',[]); 应用程序控制器('cont',功能($scope){ $scope.i
var-app=angular.module('myApp',[]);
应用程序控制器('cont',功能($scope){
$scope.invoice={
编号:10,
税项:14,
项目:[{
说明:“,
昆蒂:10,
费用:300
}],
};
$scope.currency\u符号=[{
名称:“印度卢比”,
货币:'₹'
},
{
名称:'美元',
货币:“$”
},
{
名称:'欧元',
货币:欧元
}
];
$scope.addItem=函数(){
$scope.invoice.items.push([{
description:“description”,
昆蒂:1,
费用:1
}]);
}
$scope.removietem=函数(m){
$scope.invoice.items.splice($scope.invoice.items.indexOf(m),1);
}
$scope.subTotal=函数(){
风险价值总额=0.0;
角度.forEach($scope.invoice.items,函数(item,key){
合计+=项目数量*项目成本;
});
返回总数;
};
$scope.calcuteTax=函数(){
返回($scope.subTotal()*$scope.invoice.tax)/100);
};
$scope.grandTotal=函数(){
返回($scope.subTotal()+$scope.calcuteTax());
};
});代码>
简单发票-使用AngularJS构建
计费系统
描述
量
成本{{'+currencySymbol.currency}
全部的
{{item.quentity*item.cost}
小计:
{{subTotal()}}
税款:
{{calculatetax()}}
总计:
{{grandTotal()}}
如何使代码删除我单击的项目
将item
作为参数添加到removietem
函数中:
<tr ng-repeat="item in invoice.items">
<td text-align="center">
̶<̶a̶ ̶c̶l̶a̶s̶s̶=̶"̶b̶t̶n̶"̶ ̶h̶r̶e̶f̶=̶"̶"̶ ̶n̶g̶-̶c̶l̶i̶c̶k̶=̶"̶r̶e̶m̶o̶v̶e̶I̶t̶e̶m̶(̶)̶"̶>̶
<a class="btn" href="" ng-click="removeItem(item)">
<strong>[x]</strong>
</a>
</td>
不应该。您可能看错了地方。`$scope.removietem=function(m){$scope.invoice.items.splice($scope.invoice.items.indexOf(m),1);}`我将您的代码转换为可运行的代码段,它确实删除了最后一项。实际上这很正常,它删除了最后一项,没有进行检查,因此,当indexOf
在数组中找不到值时,它会返回-1
,这对于splice
意味着“从末尾开始计算第一个元素”如何使代码删除我单击的项目?
$scope.removeItem = function(m) {
$scope.invoice.items.splice($scope.invoice.items.indexOf(m), 1);
}