I'm trying to get the current url in emberJS but I cannot. I am doing this:
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'));
}
}
});
I used to use didTransition because I need to know the current URL when all elements are load. For example: If I am in home(/home) page and navigate to contact page(/contact-page), I want to know the url '/contact-page'.
If I use window.location.href works, but not always. I thought that didTransition was called when everything else is finished, but not.
Why?
Thanks in advance
didTransition
doesn't actually have a transition
argument as your code suggests.
Instead, you should use the afterModel
method like so:
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'));
)};
}
});
Reference:
afterModel
: http://emberjs.com/api/classes/Ember.Route.html#method_afterModel
didTransition
: http://emberjs.com/api/classes/Ember.Route.html#event_didTransition
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With