Javascript 更新数组中的元素
我用的是Angularjs。我有一个表,用户可以在其中添加和更新用户列表。当有人编辑现有用户时,我首先将该用户从作用域数组中删除,然后推送更新的对象Javascript 更新数组中的元素,javascript,angularjs,Javascript,Angularjs,我用的是Angularjs。我有一个表,用户可以在其中添加和更新用户列表。当有人编辑现有用户时,我首先将该用户从作用域数组中删除,然后推送更新的对象 $.each($scope.users, function (index, value) { if (value['empId'] == $scope.userToAdd.empId) { console.log(index); $scope.users.splice(index, 1); } }); $scope.user
$.each($scope.users, function (index, value) {
if (value['empId'] == $scope.userToAdd.empId) {
console.log(index);
$scope.users.splice(index, 1);
}
});
$scope.users.push($scope.userToAdd);
这是解决这个问题的最好办法吗?我遇到的第二个问题是在我拼接的线路上。Angular正在抛出一个错误,其内容如下:
Error: value is undefined
元素仍被删除,但此错误阻止了推送的发生。我觉得这与范围有关,但我能找到答案。谢谢 代码的问题在于,在迭代数组时,您正在从数组中删除,这是不一致的 你应该做的是
$.each($scope.users, function (index, value) {
if (value['empId'] == $scope.userToAdd.empId) {
userFoundAt=index;
}
});
$scope.users.splice(userFoundAt, 1);
$scope.users.push($scope.userToAdd);
而不是放置$scope.users.push($scope.userToAdd);最后,将此代码放在$scope.users.splice(索引,1)之后;这将解决问题。您也可以直接使用ng grid开箱即用选中此项->向下滚动至
编辑聚焦单元格选择示例,plnkr->修改ng grid以满足您的需要。