ich einen Controller bin mit dem Wert auf einer Dropdown-Menü ausgewählt zu lesen, in Parametern einiger Eingabefelder nehmen und dann den Datensatz speichern. Es erstellt den Datensatz und nimmt die Informationen gut in Anspruch. Mein Problem liegt darin, dass ich am Ende der Aktion versuche, auf eine andere Seite zu wechseln. Ich erhalte die Fehlermeldung: Cannot read property 'transitionToRoute' of undefined
this.transitionToRoute funktioniert nicht in meinem Controller Ember
ich völlig ratlos bin. Irgendwelche Ideen?
Hier ist mein Controller-Code:
var teamId;
export default Ember.Controller.extend({
auth: Ember.inject.service(),
actions: {
onSelectEntityType: function(value) {
console.log(value);
teamId = value;
return value;
},
createProcess: function(processName, processDescription) {
var currentID = this.get('auth').getCurrentUser();
let team = this.get('store').peekRecord('team', teamId);
let user = this.get('store').peekRecord('user', currentID);
let process = this.get('store').createRecord('process', {
team: team,
user: user,
name: processName,
description: processDescription
});
process.save().then(function() {
this.transitionToRoute('teams', teamId);
});
}
}
});
Hier wird die entsprechende Route ist:
export default Ember.Route.extend({
auth: Ember.inject.service(),
model: function() {
var currentID = this.get('auth').getCurrentUser();
return this.store.find('user', currentID);
}
});
'Dies ist in der Callback-Funktion nicht definiert. Es gibt dutzende, wenn nicht Hunderte von Posts hierauf zu SO. Der einfachste Weg, um dieses ist ein Pfeil Funktion, wie in '.then zu verwenden (() => this.transitionToRoute'. Ein weiterer Ansatz ist es, eine' self' Variable an der Spitze der Funktion zu setzen und diese verwenden. –
Eine Korrektur Es gibt wahrscheinlich Tausende, aber um fair zu sein, ist es wahrscheinlich das häufigste Problem, das Leute mit JavaScript haben. – Kingpin2k
Werfen Sie einen Blick auf diese [Antwort] (http://stackoverflow.com/questions/37097598/nesting-functions-in- js/37097783 # 37097783) – ykaragol