Javascript 获取组件内部当前余烬路线的访问权限

Javascript 获取组件内部当前余烬路线的访问权限,javascript,jquery,ember.js,Javascript,Jquery,Ember.js,我有一个自定义的余烬组件,它位于控制器中 现在,我正在尝试动态获取当前路由名称 所以我可以使用 this.get('parentView') 但在此之后,我无法获取当前路线名称。如何获取当前路由名称? 我试过了 this.get('parentView').routeName 首先,您不应该根据组件中的当前路由实现逻辑。您的组件不应该知道它们放置的路线。但当然也有一些例外情况,例如面包屑组件、菜单组件 无论如何,你的问题的答案是: 通过使用应用程序控制器: 应用程序控制器具有currentR

我有一个自定义的余烬组件,它位于控制器中

现在,我正在尝试动态获取当前路由名称

所以我可以使用

this.get('parentView')
但在此之后,我无法获取当前路线名称。如何获取当前路由名称? 我试过了

this.get('parentView').routeName

首先,您不应该根据组件中的当前路由实现逻辑。您的组件不应该知道它们放置的路线。但当然也有一些例外情况,例如面包屑组件、菜单组件

无论如何,你的问题的答案是:

  • 通过使用
    应用程序控制器
  • 应用程序控制器
    具有
    currentRouteName
    属性

    您可以使用
    应用程序控制器
    ,例如:

    Ember.getOwner(this).lookup('controller:application').get('currentRouteName')
    
  • 通过使用
    路由器
  • 将注入到组件或查找路由器实例,例如:

     Ember.getOwner(this).lookup('router:main').get('currentRouteName');
    

    首先,您不应该根据组件中的当前路由实现逻辑。您的组件不应该知道它们放置的路线。但当然也有一些例外情况,例如面包屑组件、菜单组件

    无论如何,你的问题的答案是:

  • 通过使用
    应用程序控制器
  • 应用程序控制器
    具有
    currentRouteName
    属性

    您可以使用
    应用程序控制器
    ,例如:

    Ember.getOwner(this).lookup('controller:application').get('currentRouteName')
    
  • 通过使用
    路由器
  • 将注入到组件或查找路由器实例,例如:

     Ember.getOwner(this).lookup('router:main').get('currentRouteName');
    

    在ember
    2.15中,将为此提供路由器服务。目前在那里


    编辑:Ember 2.15已于2017年9月1日发布。您可以在和中找到有关RouterService的一些信息。请注意,由于代码中缺少文档,api文档目前未提及公开的属性。除ember router service polyfill外,您还可以在早期版本中通过
    -routing
    访问private。ember
    2.15
    中的将为此提供路由器服务。目前在那里


    编辑:Ember 2.15已于2017年9月1日发布。您可以在和中找到有关RouterService的一些信息。请注意,由于代码中缺少文档,api文档目前未提及公开的属性。除了ember router service polyfill,您还可以在早期版本中通过
    -routing
    访问private。

    您不能插入控制器实例以外的控制器。您不能插入控制器实例以外的控制器。