我有一个数组
$scope.items = [{id:1 , name:'john'},{id:2, name:'doe'}];
现在我正在从数组中过滤对象
$scope.newItem = $filter('filter')($scope.items, {id: 1})[0];
然后,我在更新表单中使用$ scope.newItem但是当我输入字段时,原始数组中的对象($ scope.items)也在变化。任何人都可以帮助我做错了什么。
有关详细说明,
我正在做两个步骤。在第一步中,我将获取所有项目并存储在$ scope.items中。然后在第二步,从项目列表点击编辑我过滤该ID的对象,这里让1,
$scope.newItem = $filter('filter')($scope.items, {id: 1})[0];
然后在显示newitem之后我想更新它。当我输入内容来更新newitem中的字段时,原始数组中的原始对象也在更新......
答案 0 :(得分:0)
你正在弄乱面向对象的概念。
实际上使用'='意味着更改$ scope.items的属性会改变$ scope.newItem的相应属性,反之亦然。
如果您不想在更改下面更改原始数组,
$scope.items = [{id:1 , name:'john'},{id:2, name:'doe'}];
var copiedOne=angular.copy($scope.items);
然后更新复制的
$scope.newItem = $filter('filter')(copiedOne, {id: 1})[0];
我希望这适合你。