我把狀態屬性從控制器移動到服務,除了queryParams。現在我想有一個查詢參數屬性來服務。
有沒有辦法在不使用觀察者的情況下實現這一點?觀察控制器屬性(參與查詢參數)從服務沒有觀察員
我目前正在使用觀察者。
控制器/ application.js中
import Ember from 'ember';
const {computed,observer} = Ember;
export default Ember.Controller.extend({
myService:Ember.inject.service(),
appName: 'Ember Twiddle',
changedAppName:observer('appName',function(){
this.get('myService').changeAppName(this.get('appName'));
}),
actions:{
changeApp(){
this.set('appName','NewEmberApp');
}
}
});
模板/ application.hbs
<h1>Welcome to {{myService.appName}}</h1>
<br>
<button {{action "changeApp"}}>Change</button>
<br>
{{outlet}}
<br>
<br>
服務/ MY-service.js
import Ember from 'ember';
export default Ember.Service.extend({
appName:'SSS',
changeAppName(param){
this.set('appName',param);
}
});
我知道從控制器設置服務屬性。很多地方我改變appName屬性,以避免重複設置服務屬性的代碼我需要一些機制,將自動照顧關聯appName控制器屬性service.Currently我沒有遵循DDAU的原則,所以這個屬性可能會改變許多其他地方... – kumkanillam
我在閱讀您的評論後修改了答案;因爲你的問題與我在開始時所理解的不同。 – alptugd
所以我不應該直接在控制器中更改'appName',我應該總是通過服務來完成。我對嗎 ? – kumkanillam