Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get Current URL in ember JS

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

like image 462
Agustin Herrera Avatar asked Mar 30 '15 16:03

Agustin Herrera


1 Answers

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
like image 53
rog Avatar answered Oct 18 '22 08:10

rog