Ember.js ember simple auth:有没有办法从路由器中获取会话?
我想在每一次转型中使用分析跟踪,如中所述 为此,我需要能够重新打开Ember.js ember simple auth:有没有办法从路由器中获取会话?,ember.js,ember-simple-auth,Ember.js,Ember Simple Auth,我想在每一次转型中使用分析跟踪,如中所述 为此,我需要能够重新打开路由器 有没有办法使用ember simple auth在那里获取当前会话?我的理解是,它可用于所有的路由和控制器,但没有看到特别提到路由器 编辑: 我现在正在探索的另一种方法是在我想要进行分析识别的所有路线上都包含一个mixin。我有一个混音器,如下所示: `import Ember from 'ember'` AnalyticsMixin = Ember.Mixin.create beforeModel: (transi
路由器
有没有办法使用ember simple auth
在那里获取当前会话?我的理解是,它可用于所有的路由和控制器,但没有看到特别提到路由器
编辑:
我现在正在探索的另一种方法是在我想要进行分析识别的所有路线上都包含一个mixin。我有一个混音器,如下所示:
`import Ember from 'ember'`
AnalyticsMixin = Ember.Mixin.create
beforeModel: (transition) ->
@_super(transition)
userId = @get('session.user_id')
if (!Ember.isEmpty(userId))
user = @store.find('user', userId)
username = user.get('username') # this doesn't work
我可以从session对象中获取用户id
,尽管我所做的session.reopen
似乎没有单独包含用户。@store.find('user',userId)
也不起作用
以下内容在模板中可以很好地工作:
Authentication =
name: "authentication"
before: "simple-auth"
initialize: (container) ->
Session.reopen
user: (->
userId = @get('user_id')
if (!Ember.isEmpty(userId))
return container.lookup('store:main').find('user', userId)
).property('userId')
container.register("authenticator:custom", CustomAuthenticator)
您始终可以使用从Ember的容器中获取会话
container.lookup('simple-auth-session:main');
在路由器的上下文中
如何获得容器
?我只在初始值设定项的上下文中见过。在我的例子中(在ember cli
app中)很可能是AppName.\uu container\uuu.lookup('simple-auth-session:main')
。实际上,可以使用this.container
。this.container洁食吗?我认为它只适用于余烬内部(特别是/特别是通过App.\uuuu container\uuuu)。好的,我四处寻找,听起来容器api是部分公开的,并且在不断变化: