我正在使用Angularjs。我有一个表,用户可以在其中添加和更新用户列表。当有人编辑现有用户时,我首先从范围内的数组中删除该用户,然后推送更新的对象。
$.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
该元素仍被删除,但此错误会阻止推送发生。我觉得这与范围有关,但可以找到答案。谢谢!
答案 0 :(得分:1)
您的代码的问题是您在迭代时从数组中删除,这是不一致的。
你应该做的是
像
这样的东西$.each($scope.users, function (index, value) {
if (value['empId'] == $scope.userToAdd.empId) {
userFoundAt=index;
}
});
$scope.users.splice(userFoundAt, 1);
$scope.users.push($scope.userToAdd);