У меня есть код входа на мой маршрут приложения, как показано в примерах в документах, но вызов аутентификации не возвращает обещание. Ответ, который я получаю в 'then', не определен. Поэтому переход не работает. Мне нужно вручную обновить страницу, а затем вызывается верхний перенаправление.Ember Simple Auth переход после входа в систему
import Ember from 'ember';
// Make 'session' available throughout the application
import ApplicationRouteMixin from 'simple-auth/mixins/application-route-mixin';
export default Ember.Route.extend(ApplicationRouteMixin, {
redirect: function() {
this.transitionTo('orders');
},
actions: {
authenticate: function() {
var data = {
identification: this.controller.get('identification'),
password: this.controller.get('password')
};
this.get('session').authenticate('simple-auth-authenticator:oauth2-password-grant', data).then(
function(response) {
console.log(response); // undefined
this.transitionTo('orders'); // can't call on undefined
}
);
},
}
});
Marco Я получаю это сейчас, «это» внутри функции имеет неправильный контекст. Я опубликовал полный рабочий код, если он кому-то поможет. Спасибо за вашу помощь, долгое время царапал мне голову над этим прошлым вечером! –
Вместо этого вы должны использовать функцию стрелки, поэтому вам не нужно назначать дополнительные '_this'. Дело в том, что вы используете аргумент 'response' в обратном вызове, который всегда будет неопределенным. – marcoow
Да, я начну использовать новый синтаксис, приветствия. –