2017-01-19 4 views
0

J'ai regardé autour de Google et Stack Overflow pour une réponse à cela: avec Ember-cli 2.10, comment puis-je configurer un seul rappel dans le routeur, ce qui me donne des informations sur l'URL précédente et actuelle, ainsi comme le nom de la Route sur le point d'être appelée? Je voudrais passer tous les 3 à une plate-forme d'analyse. Chaque exemple que j'ai trouvé a dépendu de fonctionnalités Ember obsolètes, ou tout simplement n'a pas fonctionné comme prévu. J'adore entendre une réponse à ce sujet. Aussi heureux d'entendre ce que pourrait être un meilleur design, compte tenu des exigences d'analyse ci-dessus.Rappel unique dans le routeur, pour accéder à l'URL précédente/actuelle + Informations sur l'itinéraire?

+1

Pour précédente URL 'location.href' et pour obtenir le nom de la route sur le point d'être appelé peut obtenir de' 'crochet willTransition' transition' argument en utilisant' transition. targetName' renvoie [cette réponse] (http://stackoverflow.com/a/41543404/5771666). mais en ce moment je pense que nous n'avons pas l'API exacte correcte pour obtenir le currentURL. – kumkanillam

+0

Hey merci qui est un bon début, je pris un nouveau regard et obtenu jusqu'ici pour les URL précédentes et suivantes: 'const Router = Ember.Router.extend ({ Lieu: config.locationType, rootURL: config.rootURL, didTransitionHook : function() { console.log ("fait crochet de transition"); console.log (location.href); } .on ('didTransition'), willTransitionHook: function() { console.log (" va transition crochet "); console.log (location.href); } .on ('willTransition') });' –

+0

ugh: J'apprends toujours comment afficher des exemples de code dans Stack Overflow! –

Répondre

0

Toutes vos exigences seront couvertes dans Public Router Service tirer la demande. Il comprend les propriétés currentRouteName, currentURL, location, rootURL et transitionTo. Il est en construction Canary, pas encore prêt pour la production. vous devez jouer pour activer cette fonction config/environment.js

"FEATURES": { 
     "ember-routing-router-service": true 
    } 

Vous pouvez simplement injecter router service partout et obtenir les propriétés.

router: Ember.inject.service(), 

Twiddle Copié de Miguel Camba

+0

Merci! Je vais essayer ça. –