【发布时间】:2015-09-01 13:44:56
【问题描述】:
我正在使用 Ember Simple Auth 构建网站。
我跟随these instructions 尝试将当前用户对象添加到会话中,并且使用了这个稍微修改过的代码:
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在注册表中被调用。initializerAPI 不再接收容器,您应该使用instanceInitializer从容器中查找对象。详情请见http://emberjs.com/guides/deprecations#toc_deprecate-access-to-instances-in-initializers。
我知道我需要将上述内容拆分为 /app/initializers 和 /app/instance-initializers(根据注释 here),但我不太确定如何去做。
当然,如果有一种更简单/更简洁的方法可以使用户和帐户对象可用于每个路由/模板,我很乐意听到它们 :)
谢谢
【问题讨论】:
标签: ember.js dependency-injection ember-simple-auth