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é.