2017-09-13 142 views
0

我有一個簡單的文本框 -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) –

回答

0

嘗試這樣的事情, $scope.itemIDs = []; $scope.addValueToArray = function(oldValue,newValue){ $scope.itemIDs[$scope.itemIDs.indexOf(oldValue)] = newValue; }