0
Here is my plunker:共享控制器之間的可變通過服務
從我明白,由於被共享的服務變量是一個對象,即得到由控制器1加載到服務對象應該由控制器2來清楚地體現,而不需要$手錶或聽衆或任何東西。我錯了嗎?我怎樣才能使這個工作?
Here is my plunker:共享控制器之間的可變通過服務
從我明白,由於被共享的服務變量是一個對象,即得到由控制器1加載到服務對象應該由控制器2來清楚地體現,而不需要$手錶或聽衆或任何東西。我錯了嗎?我怎樣才能使這個工作?
我已修復您的plunk:http://plnkr.co/edit/JNBmsjzdj6SHOSK4kPNh。
您的服務有一個對象,您將其放入$ scope($ scope.item)的模型中。到現在爲止還挺好。但是,您隨後使用新的對象引用($ scope.thisObject)更新服務對象,以便$ scope.item和myService.myObject現在引用完全不同的對象。
您應該只更新對象屬性。詳情請參閱plunk。
因此,而不是寫:
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;
});
希望有所幫助。
嘎!我感到很傻。我記得現在從[最佳實踐視頻](http://www.youtube.com/watch?v=ZhfUv0spHCY)做了一段時間。他花了一段時間來解決這個問題,現在我想到了。他關於這個問題的最後一句話是「如果沒有一段時間,你做錯了」 – JHixson