获取ember JS中的当前URL

时间:2015-03-30 16:24:32

标签: javascript ember.js

我试图在emberJS中获取当前网址,但我不能。我这样做:

App.Route = Ember.Route.extend(Em.I18n.TranslateableProperties, {
    actions: {
        didTransition: function (transition) {
            this._super();
            console.log(window.location.href);
            console.log(this.get('router.url'));
        }
     }
});

我曾经使用过didTransition,因为我需要在加载所有元素时知道当前的URL。例如: 如果我在家(/ home)页面并导航到联系页面(/ contact-page),我想知道网址' / contact-page'。

如果我使用 window.location.href 有效,但并非总是如此。我认为当其他一切都完成时,doTransition被调用,但不是。

为什么?

提前致谢

1 个答案:

答案 0 :(得分:5)

didTransition实际上没有代码建议的transition参数。

相反,您应该使用afterModel方法,如下所示:

App.Route = Ember.Route.extend(Em.I18n.TranslateableProperties, {
    afterModel: function(resolvedModel, transition) {
        var _this = this;  // keep a reference for usage in then()
        transition.then(function() {
            console.log(_this.get('router.url'));
        )};
    }
});

参考: