ember.js 获取组件内当前Ember路径的访问权限

0qx6xfy6  于 2022-11-05  发布在  其他
关注(0)|答案(3)|浏览(180)

我有我的自定义Ember组件,这是在一个控制器内。
现在,我尝试动态获取当前路径名称
因此,我可以使用

this.get('parentView')

但我无法在此之后获得当前路线名称。如何获得当前路线名称?我尝试了

this.get('parentView').routeName
dffbzjpn

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

vbopmzt1

vbopmzt12#

首先,你不应该在一个组件中根据当前的路径来实现一个逻辑。你的组件不应该知道它们被放置的路径。但是当然也可能有一些例外的情况,比如面包屑组件,菜单组件...
不管怎样,你的问题的答案是:
1.通过使用application controller
application controller具有currentRouteName属性。
您可以使用application controller,例如:

Ember.getOwner(this).lookup('controller:application').get('currentRouteName')

1.通过使用router
private-router service插入到组件中,或者查找路由器示例,例如:

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

13z8s7eq3#

在ember 3.20中,我可以通过这种方式访问当前路由名称

this.YOURAPP._applicationInstances.values().next().value.router.currentRouteName

相关问题