queryParamsを除くコントローラからサービスに状態プロパティを移動しました。今私は、サービスするクエリのparamプロパティの1つを持っていると思います。
オブザーバーを使用せずにこれを達成する方法はありますか?オブザーバなしのサービスからコントローラープロパティ(queryparamに参加しています)を確認します
私は現在、オブザーバーを使用しています。
コントローラ/
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.js/
<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);
}
});
をapplication.hbs 0
私は、コントローラからサービスプロパティを設定しています。私はappNameプロパティを変更している場所の多くは、サービスプロパティを設定するための繰り返しコードを避けるために、私は自動的に関連付けられているappNameコントローラのプロパティを処理するいくつかのメカニズムを必要とします。現在、私はDDAUの原則に従わず、多くの他の場所... – kumkanillam
私はあなたのコメントを読んだ後に答えを修正しました。あなたの問題は私が最初に理解したものとは異なるからです。 – alptugd
私は 'appName'をコントローラで直接変更すべきではありません。私は正しい? – kumkanillam