Ich habe State-Eigenschaften vom Controller zu Service außer QueryParams verschoben. jetzt möchte ich eine der query param property zu bedienen haben.
Gibt es eine Möglichkeit, dies ohne Beobachter zu erreichen?Beobachten Controller-Eigenschaft (Teilnahme an Abfrageparam) aus Service ohne Beobachter
Ich mache es gerade mit Beobachter.
Controller/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');
}
}
});
templates/application.hbs
<h1>Welcome to {{myService.appName}}</h1>
<br>
<button {{action "changeApp"}}>Change</button>
<br>
{{outlet}}
<br>
<br>
Dienste/my-service.js
import Ember from 'ember';
export default Ember.Service.extend({
appName:'SSS',
changeAppName(param){
this.set('appName',param);
}
});
Ich bin bewusst, Service-Eigenschaften von Controller einstellen. viele der Orte, die ich appName Eigenschaft ändern, um wiederholten Code der Einstellung Service-Eigenschaft zu vermeiden, ich benötige einige Mechanismen, die automatisch kümmert sich um die Zuordnung appName Controller-Eigenschaft zu service.Currently habe ich nicht DDAU Prinzip folgen, so dass diese Eigenschaft geändert werden kann viele andere Orte ... – kumkanillam
Ich habe die Antwort nach dem Lesen Ihres Kommentars geändert; denn dein Problem unterscheidet sich von dem, was ich am Anfang verstanden habe. – alptugd
Also sollte ich 'appName' nicht direkt im Controller ändern, sollte ich immer durch Dienste kommen. habe ich recht ? – kumkanillam