Я создаю сайт, используя Ember Simple Auth.
Я выполнил эти инструкции, чтобы попытаться добавить текущий объект пользователя в сеанс. и это сработало, используя этот слегка адаптированный код:
import Ember from 'ember';
import Session from 'simple-auth/session';
export default {
name: "current-user",
before: "simple-auth",
initialize: function(container) {
Session.reopen({
setCurrentUser: function() {
var accessToken = this.get('secure.token');
var _this = this;
if (!Ember.isEmpty(accessToken)) {
return container.lookup('store:main').find('user', 'me').then(function(user) {
_this.set('content.currentUser', user);
});
}
}.observes('secure.token'),
setAccount: function() {
var _this = this;
return container.lookup('store:main').find('account', this.get('content.currentUser.account.content.id')).then(function(account) {
_this.set('content.account', account);
});
}.observes('content.currentUser'),
});
}
};
Однако, используя последнюю версию Ember, я получаю следующее:
УСТАРЕВАНИЕ:
lookup
был вызван в реестре.initializer
API больше не получает контейнер, и вам следует использоватьinstanceInitializer
для поиска объектов из контейнера. См. http://emberjs.com/guides/deprecations#toc_deprecate-access-to-instances-in-initializers для более подробной информации.
Я знаю, что мне нужно разделить вышеуказанное на /app/initializers и /app/instance-initializers (согласно примечаниям здесь), но я не совсем уверен, как это сделать.
Конечно, если есть более простой/чистый способ сделать объекты пользователя и учетной записи доступными для каждого маршрута/шаблона, я бы хотел их услышать :)
Спасибо