Ember.js 如何从Ember 2.7.1中的应用程序控制器观察当前路由名称?

Ember.js 如何从Ember 2.7.1中的应用程序控制器观察当前路由名称?,ember.js,Ember.js,我以前做过如下工作: pageDidChange: Ember.observer('currentPath', function() { this.set('pageClassName', this.get('currentPath').replace(/[.]/g, '-')); }), 但是,这不再有效,因为currentPath属性似乎已消失。我在EmberJS网站上的API文档中也找不到任何关于它的提及 我现在应该换一种方式吗?有多种方式可以访问当前路线 1) 哈佛商学

我以前做过如下工作:

pageDidChange: Ember.observer('currentPath', function() {
    this.set('pageClassName', this.get('currentPath').replace(/[.]/g, '-'));    
}),
但是,这不再有效,因为currentPath属性似乎已消失。我在EmberJS网站上的API文档中也找不到任何关于它的提及


我现在应该换一种方式吗?

有多种方式可以访问当前路线

1) 哈佛商学院一年级

{{currentRouteName}}
2) 在控制器中

this.get('router.currentPath');
3) 从您的路线访问路由器信息

setupController: function(controller, model) {
  this._super(controller, model);
  let targetRoute = this._router._routerMicrolib.activeTransition.targetName;
  controller.set('currentPath', targetRoute);
},
在模板中:

{{currentPath}}

您好,我刚刚在Ember 2.7.0上试用过,
currentPath
仍然可用。或者您有
currentRouteName
。如果可能,另一个建议是将
pageClassName
转换为计算属性
pageClassName:Ember.computed('currentPath',function(){返回this.get('currentPath')。replace(/[.]/g',-');})
如果您使用的是Ember 2.7或更高版本,请在下面找到我的解决方案。验证您是否觉得它有用。谢谢