2017-07-11 4 views
-1

Je dois renseigner un formulaire en récupérant l'identifiant à partir de l'URL, sans utiliser le mode HTML5.AngularJS obtient la valeur du chemin

mon URL sera http://mydomain/public/keep-me-informed?id=19

Je ne veux pas utiliser # /? Id = 19 dans l'URL. côté serveur, je fais certaines opérations en obtenant le paramètre id et restitue la page. quand la page se charge, je dois obtenir l'identifiant et appeler un service pour remplir le formulaire.

Je n'ai aucun routage. $ location.search() fonctionne uniquement avec le mode # ou HTML 5.

Je peux aussi avoir l'URL comme http://mydomain/public/keep-me-informed/19

Maintenant, ce serait le moyen propre pour obtenir la valeur 19 dans mon contrôleur.

+0

S'il vous plaît fournir des informations ou bon exemple de code de ce que vous avez fait. –

+1

dans le contrôleur: obtenir l'URL actuelle avec 'window.location.href' et avec la chaîne lastindexof ('/') et les méthodes de sous-chaîne get id from url – hadi

+0

@ArjunNayak Je pensais que cette question ne nécessitait pas d'échantillon de code. Parce que j'avais expliqué ce que j'avais essayé et j'avais essayé de trouver une solution à partir de nombreux messages similaires avec des exemples de code, et tous ceux qui ont échoué pour moi, mais comme suggéré par d'autres, seul le javascript semble être la solution. – Mukun

Répondre

0

Utilisez ceci.

Vous pouvez obtenir l'identifiant par nom de paramètre, qui est id

function getParameterByName(name, url) { 
    if (!url) url = window.location.href; 
    name = name.replace(/[\[\]]/g, "\\$&"); 
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
     results = regex.exec(url); 
    if (!results) return null; 
    if (!results[2]) return ''; 
    return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 

var id = getParameterByName('id');