2015-03-30 20 views
5

Próbuję uzyskać aktualny adres URL w emberJS, ale nie mogę. Robię to:Pobierz bieżący adres URL w ember JS

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')); 
     } 
    } 
}); 

Kiedyś użyłem didTransition, ponieważ muszę znać aktualny adres URL, gdy wszystkie elementy są załadowane. Na przykład: Jeśli jestem na stronie domowej (/ home) i przechodzę do strony kontaktowej (/ strona kontaktowa), chcę znać adres URL/stronę kontaktową.

Jeśli używam window.location.href działa, ale nie zawsze. Pomyślałem, że to przemówienie zostało wywołane, gdy wszystko inne jest skończone, ale nie.

Dlaczego?

góry dzięki

+0

Czy nic zalogowany czy też uzyskać puste logi? Właśnie wypróbowałem to w didTransition i to działa dobrze dla mnie. –

+0

Dlaczego chcesz znać adres URL? Co zamierzasz z tym zrobić? –

+0

Cześć! Muszę znać adres URL, ponieważ muszę porównać z lokalnym obiektem –

Odpowiedz

4

didTransition w rzeczywistości nie mają transition argumentu jako kod sugeruje.

Zamiast tego należy użyć metody afterModel tak:

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')); 
     )}; 
    } 
}); 

referencyjny:

+0

Chciałbym skorzystać z tej sugestii, ale 'afterModel' nie uruchamia się po każdym przejściu. Jakieś inne sposoby uzyskania tych informacji? – lizlux