我的自定义Ember组件位于控制器内部。
现在我正在尝试动态获取当前路由名称
所以我可以使用
访问控制器this.get('parentView')
但在此之后我无法获得当前的路线名称。如何获取当前路径名称? 我试着做了
this.get('parentView').routeName
答案 0 :(得分:1)
首先,您不应该根据组件中的当前路由实现逻辑。您的组件不应该知道它们的放置路线。但当然可能有一些例外情况,例如breadcrump组件,菜单组件......
无论如何,你的问题的答案是:
application controller
: application controller
具有currentRouteName
属性。
您可以使用application controller
,例如:
Ember.getOwner(this).lookup('controller:application').get('currentRouteName')
router
:将private -router
service注入您的组件或查找路由器实例,例如:
Ember.getOwner(this).lookup('router:main').get('currentRouteName');
答案 1 :(得分:1)
在ember中2.15
将是一个路由器服务。目前有is a polypill for older ember versions。
编辑:Ember 2.15已于2017年9月1日发布。您可以在release notes和api documentation中找到有关RouterService的一些信息。请注意,api文档目前未提及由于代码中缺少文档而暴露的属性。除了ember-router-service-polyfill之外,您还可以在早期版本中通过-routing
访问私有RoutingService。
答案 2 :(得分:0)
ember 3.20我可以通过这种方式访问当前路由名称
this.YOURAPP._applicationInstances.values().next().value.router.currentRouteName