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。
有没有一种角度的方式,我可以用数组中的新值替换第二个值的输入值,而不是在最后添加它?我错过了什么吗?
答
尝试这样的事情, $scope.itemIDs = []; $scope.addValueToArray = function(oldValue,newValue){ $scope.itemIDs[$scope.itemIDs.indexOf(oldValue)] = newValue; }
尝试使用'方法Array.splice(指数的howmany,物品1,......,itemX)'这一点。见[this](https://www.w3schools.com/jsref/jsref_splice.asp) –