Ich bin flummoxed. Ich habe das funktioniert, aber ich habe keine Ahnung warum. Hier ist die Einrichtung ... Der Service, gestrippt ...Logik für, wenn 'diese' von Komponente zu Service gültig ist
export default Ember.Service.extend({
editableCat: null,
saveCatChanges() {
var editCat = editableCat;
this.get('editstate').saveJournalChanges();
...
Der Anrufer, der Bestandteil Aktivität ist ... Import Ember von 'Ember';
export default Ember.Component.extend({
editstate: Ember.inject.service('edit-state'),
actions: {
createCat() {
WORKS this.get('editstate').saveCatChanges();
FAILS Ember.get(this.get('editstate'), 'saveCatChanges')
}
}
});
Die "FAILS" -Version hat keine Definition für "dies", wenn es zum Dienst kommt. "Ja wirklich?" Es sind also keine "saveCatChanges" definiert und Ausnahmen sind ausgeschlossen. Aber der gleiche Code im Service, der mit der WORKS-Variante aufgerufen wird, hat ein "das" und alles ist gut.
Warum? Hä? Und der einzige Grund, warum ich das aufgespürt habe, war die pure Frustration beim Versuch, es zu dokumentieren, also, was?
Bitte helfen Sie mir zu verstehen. Ember verwirrt mich, wenn ich foo.bar vs Ember.get (das, 'foo'). Bar vs Ember.get (das, Ember.get (das, 'foo'), 'bar), aber das ist besonders unerwartet.