Ember-Simple-Auth: перегрузка sessionAuthenticationSucceeded
Я сейчас пытаюсь переопределить sessionAuthenticationSucceeded
в Ember.SimpleAuth.ApplicationRouteMixin
класс, так что я могу перейти в свой routeAfterAuthentication
с моделью, переданной в.
В принципе this.transitionTo(Configuration.routeAfterAuthentication, model);
, но даже после этого Ember.SimpleAuth.ApplicationRouteMixin.reopen()
мое переопределение функции никогда не вызывается. Так я все об этом говорю? Разве миксин не может быть вновь открыт таким образом? Или я должен передать модель routeAfterAuthentication
переход по-другому.
РЕДАКТИРОВАТЬ: глупые пределы репутации, собирался ответить на это сам, но, видимо, придется ждать 8 часов, так что вот этот ответ на данный момент:
Ну, не совсем уверен, что это правильный способ сделать это, но это работает. Я просматривал этот пример: custom-server и я сделал это, чтобы выполнить то, что я хотел.
var applicationRoute = container.lookup('route:application');
var session = container.lookup('ember-simple-auth-session:main');
var store = container.lookup('store:main');
session.on('sessionAuthenticationSucceeded', function() {
var user = store.find('user', session.get('user_id'));
container.lookup('controller:application').set('content', user)
applicationRoute.transitionTo('profile.resume', user);
});
2 ответа
Самым простым решением было бы просто определить sessionAuthenticationSucceeded
на пути применения вместо повторного открытия миксинов:
/// routes/application.js
import ApplicationRouteMixin from 'simple-auth/mixins/application-route-mixin';
export default Ember.Route.extend(ApplicationRouteMixin, {
actions: {
sessionAuthenticationSucceeded: function() {
…
}
}
})
Ну, не совсем уверен, что это правильный способ сделать это, но это работает. Я просматривал этот пример: custom-server и я сделал это, чтобы выполнить то, что я хотел.
var applicationRoute = container.lookup('route:application');
var session = container.lookup('ember-simple-auth-session:main');
var store = container.lookup('store:main');
session.on('sessionAuthenticationSucceeded', function() {
var user = store.find('user', session.get('user_id'));
container.lookup('controller:application').set('content', user)
applicationRoute.transitionTo('profile.resume', user);
});