2016-09-23 6 views
-2

を更新するときに、私は今、私は中に$ scope.newItemを使用しています、そして、配列防ぎ変更フィルタオブジェクト

$scope.newItem = $filter('filter')($scope.items, {id: 1})[0]; 

からオブジェクトを配列

$scope.items = [{id:1 , name:'john'},{id:2, name:'doe'}]; 

をフィルタリングしていています私はフィールドを入力すると元の配列($ scope.items)のオブジェクトも変化しています。私が間違ってやっていることを誰でも助けることができます。

詳細については、

私は2つのステップを行っています。最初のステップでは、私はすべての項目を取得し、$ scope.itemsに格納しています。その後、第二段階で、私はここでそのIDのオブジェクトをフィルタリングしています項目のリストから[編集]をクリックしに私はそれを更新したいnewitemを表示した後、その後1、

$scope.newItem = $filter('filter')($scope.items, {id: 1})[0]; 

をしましょう。 newitemのフィールドを更新する何かを入力すると、元の配列の元のオブジェクトも更新されます。

+1

あなたは何をしているのか分からないことを覚えておいてください。これまでのところあなたの質問は理解するのが難しいです。 – evolutionxbox

答えて

0

あなたはオブジェクト指向の概念を乱しています。

実際に '='を使用すると、$ scope.itemsのプロパティを変更すると$ scope.newItemの対応するプロパティが変更されることになります。

変更内容以下の元の配列の使用を変更したくない場合は、

$scope.items = [{id:1 , name:'john'},{id:2, name:'doe'}]; 

var copiedOne=angular.copy($scope.items); 

は、その後、あなたのコピー1

$scope.newItem = $filter('filter')(copiedOne, {id: 1})[0]; 

を更新し、私はこれがあなたのために働く願っています。

+0

ありがとう、これは動作します –

関連する問題