私が理解していることから、共有されるサービス変数はオブジェクトであるため、コントローラー 1 によってサービスにロードされるオブジェクトは、$watches やリスナーなどを必要とせずに、コントローラー 2 によって明確に表示されるはずです。私が間違っている?どうすればこれを機能させることができますか?
質問する
93 次
1 に答える
3
私はあなたのプランクを修正しました: http://plnkr.co/edit/JNBmsjzdj6SHOSK4kPNh .
サービスには、$scope ($scope.item) のモデルに入れるオブジェクトがあります。ここまでは順調ですね。ただし、サービス オブジェクトを新しいオブジェクト参照 ($scope.thisObject) で更新して、$scope.item と myService.myObject が完全に異なるオブジェクトを参照するようにします。
オブジェクトのプロパティのみを更新する必要があります。詳細については、プランクを参照してください。
したがって、書く代わりに:
app.factory('myService',function(){
var service = {
myObject:{},
changeProperty: function(newProperty){
this.myObject = newProperty;
}
};
return service;
});
以下を使用する必要があります。
app.factory('myService',function(){
var service = {
myObject:{},
changeProperty: function(newProperty){
this.myObject.text = newProperty.text;
}
};
return service;
});
それが役立つことを願っています。
于 2013-05-21T20:27:46.060 に答える