1
我不確定我是否有一個「最佳實踐」問題,我試圖以一種奇怪而美妙的方式解決這個挑戰,或者我對AngularJS只是還沒有。將工廠中的數據從一個控制器傳遞到另一個控制器
場景:所以我一直在試圖想出一個方法來在頁面上輸出「originCity.cityName」幾次,所有引用同一工廠內的同一個對象,希望如果我將其設置爲其他值(例如「測試字符串」),那麼它將追溯替換我在頁面附近的所有{{originCity.cityName}}
。
module.service('cityFactory', function() {
return {
originCity: {
cityName: 'TestLocation'
};
//Update the city
this.update = function (newCityName) {
this.originCity.cityName = newCityName;
}
});
在兩個單獨的控制器我有以下呼叫到工廠:
$scope.originCity = cityService.originCity
而且,以證明,在一個單獨的控制器我有以下呼叫到工廠的更新方法:
$scope.setCity = function() {
cityService.update('Test String');
}
正如我上面提到的,這是很新的給我,所以我可能會去這一切錯誤的,但我希望能有一個方法,一個工廠,我可以從任何地方呼籲日e頁面(只要依賴關係完全一致)就可以在幾個地方更新該值。
如果我console.log
this.originCity.cityName
在工廠內的更新方法,然後它輸出正確爲Test String
但其他引用的數據當前不更新。
你怎麼稱呼的更新方法?如果你把它放在'$ watch'中,它應該正確更新 – Guinn
哦,等等,你更新工廠.. missread that。在那種情況下,你如何改變價值?通過輸入框? – Guinn
@Guinn出於演示目的我儘量保持它儘可能簡單,所以我只是在頁面上放置一個隨機按鈕,如果按下我稱爲更新方法。 – Aleski