$ rootScope($ scopeでもかまいません)の変数に基づいてユーザーの詳細を編集するためのフォームの作業。ビューでAngularJS等価変数のバインドを解除する
$rootScope.formData = $rootScope.user;
、NG-モデルは入力にあります:
ng-model="formData.email"
私は期待して挙動がモデルを更新することであり、唯一の$ rootScope.formDataは更新し、代わりに、両方のだろう更新。
2つの関係を解除する方法はありますか?
新しいインスタンスで動作するように(lo-dashを参照)
angular.copy()
またはcloneDeep()
を呼び出すことができます。 'user'は参照です。 JS内のオブジェクトは参照として渡されます。それでおしまい。あなたはいつでもcloneまたはcloneDeep(例えばlo-dash)を呼び出すことができます。私はJSの振る舞いが参照渡しであるという事実に基づいてあなたのデザインを再考することを提案します。 –あなたは正しいので、docはangular.copy()の例としてこの厳密なシナリオを与えます。あなたがこれを答えにするなら、私はそのようにマークします。私がしなければならなかったのは、そのメソッドで2番目のvarをラップすることでした。ありがとう。 http://docs.angularjs.org/api/angular.copy – Jazzy