Concernant $ location.search, la documentation dit,
Renvoie la partie de recherche (en tant qu'objet) de l'URL actuelle lorsqu'elle est appelée sans aucun paramètre.
Dans mon url, ma chaîne de requête a un paramètre «? Test_user_bLzgB» sans valeur. «$ Location.search ()» renvoie également un objet. Comment obtenir le texte réel?
javascript
angularjs
Ian Warburton
la source
la source
$location.search()
mais je souhaite vérifier l '"objet" que vous obtenez lorsque vous l'appelez ...Réponses:
Je ne sais pas si cela a changé depuis que la réponse acceptée a été acceptée, mais c'est possible.
$location.search()
renverra un objet de paires clé-valeur, les mêmes paires que la chaîne de requête. Une clé qui n'a aucune valeur est simplement stockée dans l'objet comme true. Dans ce cas, l'objet serait:Vous pouvez accéder à cette valeur directement avec
$location.search().test_user_bLzgB
Exemple (avec une chaîne de requête plus grande): http://fiddle.jshell.net/TheSharpieOne/yHv2p/4/show/?test_user_bLzgB&somethingElse&also&something=Somethingelse
Remarque: en raison des hachages (comme il ira sur http://fiddle.jshell.net/#/url , ce qui créerait un nouveau violon), ce violon ne fonctionnera pas dans les navigateurs qui ne prennent pas en charge l'historique js (ne fonctionnera pas dans IE <10)
Edit:
Comme indiqué dans les commentaires de @Naresh et @DavidTchepak, le
$locationProvider
doit également être configuré correctement: https://code.angularjs.org/1.2.23/docs/guide/$location#-location-service-configurationla source
$locationProvider
doit également être configuré correctement: code.angularjs.org/1.2.23/docs/guide/… (Cela m'a fait trébucher. J'espère que le lienSi vous avez juste besoin de regarder la chaîne de requête sous forme de texte, vous pouvez utiliser:
$window.location.search
la source
$location.search()
renvoie un objet, composé des clés comme variables et des valeurs comme valeur. Donc: si vous écrivez votre chaîne de requête comme ceci:Vous pouvez facilement obtenir le texte comme ceci:
Si vous ne souhaitez pas utiliser de clé, valeur comme? Foo = bar, je vous suggère d'utiliser un hash #test_user_bLzgB,
et appeler
renverrait «test_user_bLzgB» qui sont les données que vous souhaitez récupérer.
Information additionnelle:
Si vous avez utilisé la méthode de la chaîne de requête et que vous obtenez un objet vide avec $ location.search (), c'est probablement parce qu'Angular utilise la stratégie hashbang au lieu de celle html5 ... Pour que cela fonctionne, ajoutez cette configuration à votre module
la source
Commencez par corriger le format de l'URL pour obtenir la chaîne de requête, utilisez #? Q = string qui fonctionne pour moi
Injecter le service $ location dans le contrôleur
Donc, la sortie devrait être abcd
la source
vous pouvez également l'utiliser
la source
Si votre
$location.search()
ne fonctionne pas, assurez-vous que vous disposez des éléments suivants:1)
html5Mode(true)
est configuré dans la configuration du module de l'application2)
<base href="https://stackoverflow.com/">
est présent dans votre HTMLRéférences:
la source
Angular ne prend pas en charge ce type de chaîne de requête.
La partie requête de l'URL est censée être une
&
séquence séparée de paires clé-valeur, donc parfaitement interprétable comme un objet.Il n'y a pas du tout d'API pour gérer les chaînes de requête qui ne représentent pas des ensembles de paires clé-valeur.
la source
Dans mon exemple NodeJS, j'ai une URL "localhost: 8080 / Lists / list1.html? X1 = y" que je souhaite parcourir et acquérir des valeurs.
Afin de travailler avec $ location.search () pour obtenir x1 = y, j'ai fait quelques choses
ma list1.js a
et ma liste1.html a
Guide: https://code.angularjs.org/1.2.23/docs/guide/$location
la source
Mon correctif est plus simple, créer une usine et l'implémenter comme une variable. Par exemple
la source