AngularJS - 根据输入文本框更改替换数组中的值

时间:2017-09-13 16:22:46

标签: javascript angularjs arrays

我有一个简单的文本框 -

<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。

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

1 个答案:

答案 0 :(得分:0)

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