Ich lerne gerade Ember.js und lief in ein kleines Problem. Ich habe einen Dienst, wo ich will eine andere Methode nenne ich im gleichen Objekt definiert haben, etwa so:Call-Methode von einer anderen Methode in Ember Service
export default Ember.Service.extend({
myMethod: function() { ... },
otherMethod: function() {
this.myMethod(); // <---- this doesn't work
this.get('myMethod')(); // <---- also doesn't work
Ember.run.bind(this, this.myMethod)() // <---- no dice
}
});
Gibt es eine Möglichkeit, dies zu tun? Ich würde gerne Code in meiner Codebasis wiederverwenden.
Danke.
Ihre Frage ist auf jede Art von Detail wirklich kurz, z.B. Wie initialisierst du 'myMethod()' auf deinem Dienst? Aber Sie sollten 'Ember.Service' nicht erweitern, sondern' Ember.Object', und Sie sollten es richtig initialisieren: http://emberjs.com/guides/understanding-ember/dependency-injection-and-service-lookup/ – Leeft
... das ist Teil eines Ember Trainingskurses, also mache ich es einfach so, wie sie mir sagen, dass ich sollte. Ich bin nicht sicher, welche anderen Arten von Details notwendig sind. Sollte ich nicht in der Lage sein, die Methode eines Objekts aus sich heraus zu nennen? – Jason
Angenommen, Sie erstellen eine Art neues Objekt mit dieser Klasse und rufen dann 'serviceObject.otherMethod()' auf, sollten Sie damit kein Problem haben. Es gibt nichts in dem Code, den Sie gezeigt haben, der das verbieten würde, also muss es sein, wie Sie es erstellen oder verwenden. – Leeft