AngularJS - 基于文本框中输入数组替换值改变

问题描述:

我有一个简单的文本框 -AngularJS - 基于文本框中输入数组替换值改变

<input type="text" class="form-control" id="inputID" name="ItemId" ng-model="inputItemId" ng-required="true" ng-blur="addValueToArray(inputItemId)"/> 

输入框的数量增加和减少基于用户的选择(我有一个简单的加法/减法功能,复制文本框或删除它们),但它们最终都被存储在一个数组 -

 $scope.itemIDs = []; 
     $scope.addValueToArray = function(inputItemId) 
     {  
      $scope.validID = $filter('uppercase')(inputItemId); 
      $scope.itemIDs.push($scope.validID);   
     } 

我的$ scope.itemIDs数组保存用户在不同的文本框中已经进入了所有的ID。

说现在这个数组中的值是--ABC,ABD,ABE,ABZ四个不同的项目。

我现在想要实现的是,如果用户决定在文本框中删除第二个值ABD并将其替换为ABW,那么根据我的函数的工作方式,它最终将其添加到最后一个元素之后数组,看起来像 - ABC,ABD,ABE,ABZ,ABW。

有没有一种角度的方式,我可以用数组中的新值替换第二个值的输入值,而不是在最后添加它?我错过了什么吗?

+0

尝试使用'方法Array.splice(指数的howmany,物品1,......,itemX)'这一点。见[this](https://www.w3schools.com/jsref/jsref_splice.asp) –

尝试这样的事情, $scope.itemIDs = []; $scope.addValueToArray = function(oldValue,newValue){ $scope.itemIDs[$scope.itemIDs.indexOf(oldValue)] = newValue; }