在Ember 2.0控制器中将被弃用。如何访问currentPath。目前我正在做以下事情。
needs: ["application"],
routeName : function() {
return this.get('controllers.application.currentPath');
}.property('controllers.application.currentPath),
答案 0 :(得分:4)
您可以执行类似
的操作applicationController: Ember.inject.controller("application"),
routeName : function() {
return this.get('applicationController.currentPath');
}.property('applicationController.currentPath)
答案 1 :(得分:2)
如果我没记错,ember 1.8添加了routeName
属性来路由对象,你可以通过调用this.routeName
从路由访问它(我假设这是你想要的,因为你的cp被命名为)。
另外,您应该开始使用新的计算属性语法:
routeName: Ember.computed('controllers.application.currentPath', function() {
return this.get('controllers.application.currentPath');
}),
答案 2 :(得分:1)
以3.9 API文档为例,这是您现在要执行的操作。可能建议使用公共API(currentRouteName,currentURL),但目前超级容易重构。
export default Service.extend({
router: service(),
whereAmI: computed('router.currentRouteName', function() {
return this.router._router.currentPath; // 'users.index'
})
});
https://api.emberjs.com/ember/3.9/classes/RouterService https://github.com/emberjs/ember.js/blob/v3.9.0/packages/%40ember/-internals/routing/lib/system/router.ts#L1631