Angularjs 如何在indexOf()中传递值?

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

在这段代码中,“m”是在indexOf函数中编写的。但在代码中没有传递值的位置。我无法理解此“m”如何删除ng repeat中的正确项。当我把“m”换成其他东西时,它现在正在工作。我对AngularJS是新手。 在main.js文件中有removeitem函数,我从'm'值的来源处获取,它从任何地方传递。我试图删除“m”,但它不起作用,它删除了最后一项

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);
  }