La meilleure façon d'analyser URL demandée dans AngularJS

J'ai une URL comme:

http://www.something.com/project/edit/ 987654321

Quelle est la meilleure façon d'analyser la partie 987654321 de l'URL à l'aide d'AngularJS? Existe-t-il des fonctions d'aide dans Angular? (Je préférerais ne pas utiliser jQuery)

Si je comprends bien, les fonctions de routage dans AngularJS ne fonctionneront que si vous utilisez un # dans l'URL ou le mode HTML5 activé.

Nous devons analyser cette URL lorsque la page est chargée pour la première fois.

Vous pouvez utiliser la fonction $location#path() du service de $location#path() :

 # given: url = http://www.something.com/project/edit/987654321 $location.path().split('/').pop(); 

Cependant , il semble que vous avez un problème de routage. Consultez le didacticiel angulaire sur le routage , qui montre comment utiliser correctement les itinéraires $routeProvider dans la configuration de votre app.js . Du tutoriel:

 phonecatApp.config(['$routeProvider', function($routeProvider) { $routeProvider. when('/phones/:phoneId', { templateUrl: 'partials/phone-detail.html', controller: 'PhoneDetailCtrl' }) .otherwise( ...) //omitting remainder of cut/paste 

Donc votre app.js aurait une définition de route comme:

 ender2050App.config(['$routeProvider', function($routeProvider) { $routeProvider. when('/project/edit/:id', { templateUrl: 'partials/editor.html', controller: 'EditorCtrl' }) 

Et votre fichier de contrôleur (c.-à-d. Controllers.js) aurait le EditorCtrl qui injecte le service $routeParams pour accéder à la variable id .

Si vous avez besoin d'une option d'analyse plus personnalisée, consultez le service $parse .

Je vais répondre à la question en fonction du titre parce que j'ai débarqué ici à la recherche d'un moyen d'analyser une URL aussi. Voici la réponse que j'ai trouvée sur une page de violoneux.

 var parser = document.createElement('a'); parser.href = "http://www.example.com"; //At this point it's parsed and all the info is on the parser object console.log(parser.protocol); console.log(parser.hash); console.log(parser.hostname); console.log(parser.port); console.log(parser.pathname); console.log(parser.search); 

[Mettre à jour]
Je viens de remarquer qu'il y a une classe d'URL.

 var parsedURL = new URL('http://www.example.com'); console.log(parsedURL.hash); console.log(parsedURL.protocol); console.log(parsedURL.host); //etc 

La question et la réponse ne respectent pas le titre. J'ai atterri ici en essayant de rechercher comment analyser TOUT url en angulaire. Cette question porte sur l'analyse de l'URL demandée . Et si je veux analyser http://www.google.com ??

L'a édité.