我试图在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被调用,但不是。
为什么?
提前致谢
答案 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'));
)};
}
});
参考: