我有我的自定义Ember组件,这是在一个控制器内。现在,我尝试动态获取当前路径名称因此,我可以使用
this.get('parentView')
但我无法在此之后获得当前路线名称。如何获得当前路线名称?我尝试了
this.get('parentView').routeName
dffbzjpn1#
在ember 2.15将是一个路由器服务。目前有is a polypill for older ember versions。编辑:Ember 2.15已于2017年9月1日发布。您可以在发布说明和api documentation中找到一些关于RouterService的信息。请注意,由于代码中缺少文档,api文档目前没有提到暴露的属性。除了ember-router-service-polyfill,您还可以在早期版本中通过-routing访问私有的RoutingService。
2.15
-routing
vbopmzt12#
首先,你不应该在一个组件中根据当前的路径来实现一个逻辑。你的组件不应该知道它们被放置的路径。但是当然也可能有一些例外的情况,比如面包屑组件,菜单组件...不管怎样,你的问题的答案是:1.通过使用application controller:application controller具有currentRouteName属性。您可以使用application controller,例如:
application controller
currentRouteName
Ember.getOwner(this).lookup('controller:application').get('currentRouteName')
1.通过使用router:将private-router service插入到组件中,或者查找路由器示例,例如:
router
-router
Ember.getOwner(this).lookup('router:main').get('currentRouteName');
13z8s7eq3#
在ember 3.20中,我可以通过这种方式访问当前路由名称
this.YOURAPP._applicationInstances.values().next().value.router.currentRouteName
3条答案
按热度按时间dffbzjpn1#
在ember
2.15
将是一个路由器服务。目前有is a polypill for older ember versions。编辑:Ember 2.15已于2017年9月1日发布。您可以在发布说明和api documentation中找到一些关于RouterService的信息。请注意,由于代码中缺少文档,api文档目前没有提到暴露的属性。除了ember-router-service-polyfill,您还可以在早期版本中通过
-routing
访问私有的RoutingService。vbopmzt12#
首先,你不应该在一个组件中根据当前的路径来实现一个逻辑。你的组件不应该知道它们被放置的路径。但是当然也可能有一些例外的情况,比如面包屑组件,菜单组件...
不管怎样,你的问题的答案是:
1.通过使用
application controller
:application controller
具有currentRouteName
属性。您可以使用
application controller
,例如:1.通过使用
router
:将private
-router
service插入到组件中,或者查找路由器示例,例如:13z8s7eq3#
在ember 3.20中,我可以通过这种方式访问当前路由名称