Ember.js 路由器中的单个回调,用于访问上一个/当前url+;路线信息?

Ember.js 路由器中的单个回调,用于访问上一个/当前url+;路线信息?,ember.js,ember-router,Ember.js,Ember Router,我一直在Google和Stack Overflow上寻找答案:使用Ember cli 2.10,我如何在路由器中设置一个回调,它为我提供有关以前和当前URL的信息,以及将要调用的路由的名称?我想把这三个都传递给一个分析平台 我发现的每一个示例要么依赖于不推荐的余烬特性,要么就是plain没有像预期的那样工作。我很想听到这个问题的答案。鉴于上述分析要求,也很高兴听到更好的设计可能是什么。您的所有要求都将包含在请求中。它包括属性currentRouteName,currentURL,位置,rootU

我一直在Google和Stack Overflow上寻找答案:使用Ember cli 2.10,我如何在路由器中设置一个回调,它为我提供有关以前和当前URL的信息,以及将要调用的路由的名称?我想把这三个都传递给一个分析平台


我发现的每一个示例要么依赖于不推荐的余烬特性,要么就是plain没有像预期的那样工作。我很想听到这个问题的答案。鉴于上述分析要求,也很高兴听到更好的设计可能是什么。

您的所有要求都将包含在请求中。它包括属性
currentRouteName
currentURL
位置
rootURL
转换到
方法。 它是金丝雀型的,还没有准备好生产。要玩游戏,您需要启用此功能
config/environment.js

"FEATURES": {
      "ember-routing-router-service": true
    }
您只需在任何地方注入
路由器
服务即可获得属性

router: Ember.inject.service(),

复制自Miguel Camba

,用于上一个URL
location.href
和获取即将调用的路由的名称,可以使用
transition.targetName
willTransition
hook
transition
参数获取。但是现在我认为我们没有正确的API来获取当前URL。嘿,谢谢这是一个好的开始,我重新审视了上一个和下一个URL:
const Router=Ember.Router.extend({location:config.locationType,rootURL:config.rootURL,didTransitionHook:function(){console.log(“did transition hook”));console.log(location.href);}.on('didtransformation'),willTransitionHook:function(){console.log(“willTransitionHook”);console.log(location.href);}.on('willTransition')location.href
它在任何地方都可用。为什么需要在路由器中创建观察者,在所有路由中都有可用的
willTransition
didtransfition
挂钩,它将从子路由冒泡到直到
应用程序
路由。谢谢!我会试试看。