これまでに行ったことがありますが、今回は何が問題になったのか分かりません。角1:コントローラ経由で更新されたサービス変数
サービス:
angular.module('module')
.service("BaseService", function() {
var vm = this;
var testValue = {a:1,b:2};
vm.getTestValue = function(){
return testValue;
}
});
コントローラーでの方法:
vm.getTest = function(){
console.log(BaseService.testValue) // undefined - cool
console.log(BaseService.getTestValue()) //{a: 1, b: 2} - cool
var value = BaseService.getTestValue();
console.log(value) // {a: 1, b: 2} - cool
value.a = 20; // updated local object
console.log(value) // {a: 20, b: 2} -cool
console.log(BaseService.getTestValue())-- {a: 20, b: 2} -- ??? why
}
は、ローカル変数は、サービス内で、それはそのように振る舞う場合は更新なっている理由私の質問は、明らかであるホープ..サービス/工場で機能を設定する正しい方法は何でしょうか?VMで機能を追加するのではなく、機能のプロトタイプを作成する方がよいでしょう。
ありがとうございました...私は代わりとしてやっています...しかし、これらのオブジェクトに対処する最善の方法を知りたいです...そして部屋の例のおかげで...非常に革新的で覚えやすい。 – Luckyy
オブジェクトを変更する必要がない場合は、その関数を不変にする必要があるため、コピーを返す必要があります。 –