Я пытаюсь использовать ember-simple-auth с пользовательским сеансом. После входа в систему, когда я пытаюсь получить доступ к сеансу в шаблоне, например:
{{session.current_user.email}}
Я получаю следующую ошибку:
Uncaught Error: Assertion Failed: Required contextualElement for view <Ember._HandlebarsBoundView:ember375> is missing
если я перезагружаю страницу, ошибка исчезает. Кроме того, если я использую несвязанный помощник, он исчезает:
{{unbound session.current_user.email}}
У меня есть следующий код для установки current_user при изменении user_id:
import Session from 'simple-auth/session';
import Ember from 'ember';
export function initialize(container) {
Session.reopen({
setCurrentUser: function() {
var id = this.get('user_id');
var _this = this;
if(!Ember.isEmpty(id)) {
return container.lookup('store:main').find('user', id).then(function(user){
_this.set('current_user', user);
});
}
}.observes('user_id')
});
}
export default {
name: 'authentication',
before: 'simple-auth',
initialize: initialize
};
Что я делаю неправильно?
Редактировать №1:
Куда бы я поместил этот код? Инициализатор? app/sessions/custom.js
?
export default Session.extend({
currentUser: function() {
var userId = this.get('user_id');
if (!Ember.isEmpty(userId)) {
return this.container.lookup('store:main').find('user', userId);
}
}.property('user_id')
});
Затем в environment.js я установил:
ENV['simple-auth'] = {
session: 'session:custom'
}
а в инициализаторе я прописываю кастомную сессию?
container.register('session:custom', Session);
Редактировать № 2:
Пользовательский сеанс перемещен в sessions/custom.js
. Все та же ошибка: