同じ配列を指すnodes
というプロパティを割り当てるAnuglarサービス内に2つのオブジェクトがあります。これは正しい方法ですか?私は1つのオブジェクトのノードへの変更が他の2つの別々のJavaScriptオブジェクトのプロパティを確実にリンクする方法
objectOne.nodes = [o1, o2, o3];
objectTwo.nodes = [];
angular.forEach(objectOne.nodes, function(n){
objectTwo.nodes.push(n); // based on some logic not all n assigned to the objectTwo, some might go to objectThree.
})
を変更されていることを確認したときに、私はobjectTwo.nodes[i]
に変更を加える場合は今、私はこれはi、jは、インデックスされているobjectOne.nodes[j]
の申請を期待していることを見ていないです2つの異なるオブジェクトの同じノードに対して(順序が一致しない可能性があるため)、これは表示されません。ノードをobjectTwo
にプッシュすると何か問題が起きますか?
PS:私はDOMのobjectTwoノードに変更を加えています。また、objectOneとObjectTwoの両方が私のサービスのmem変数にあります。
は、なぜあなたはただ行うことはありません - objectTwo.nodes = objectOne.nodes、そのようにあなたがそれを渡します参照してください – naortor
いいえ、私はどのノードがobjectTwo、またはobjectThreeまたはo bjectFourなど... – rex
1つのオブジェクト上のノードに変更を加え、もう一方は変更しています - あなたは '$ scope。$ watch'を参照していると思いますか?コールバック関数は 'angular.forEach'と似ています – CozyAzure