Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js ember simple auth:有没有办法从路由器中获取会话?_Ember.js_Ember Simple Auth - Fatal编程技术网

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是部分公开的,并且在不断变化: