AngularJS UI-Router : Obtenir l'URL absolue de l'état avec les paramètres
Je voulais être en mesure de modifier l'adresse URL sans modification de l'état, comme pour prévenir de nouveau rendu. De ma recherche, ui-router
ne prévoit pas actuellement, mais $location.path
de anuglar n'.
Alors, naturellement, j'ai voulu utiliser $state.get(stateName)
pour arriver à l'état de l'URL, de sorte que je n'ai pas manuellement, tapez l'URL.
J'ai deux problèmes:
$state.get(stateName)
retourne le chemin relatif seulement. Comment puis-je obtenir le chemin absolu?- Il renvoie également à l'état de la définition, avec les paramètres non définis. Comment puis-je obtenir l'URL avec le paramètre en place?
Par exemple, si j'ai un état qui est appelé user.home.view
avec user.home
, j'ai mes états définis comme
'user': {
abstract: true,
url: '^/users/'
},
'user.home': {
url: ''
},
'user.home.view': {
url: ':id/'
}
Donc, pour l'instant, $state.get(user.home.view).url
retourne :id/
. Comment puis-je obtenir l'URL complète (c'est à dire, /users/5/
)?
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
$state.href()
.Pour obtenir l'URL absolue vous pouvez ensuite utiliser:
$state.href('user.home.view', {}, {absolute: true});
Pour obtenir l'URL avec les paramètres en place, vous devez les ajouter en tant que deuxième argument
Ce sujet :
Pour obtenir l'URL absolue sans paramètres, je suis la recherche j'ai besoin de passer
inherit: false
, par exemple:Sans
inherit: false
je recevais tous les paramètres qui peuvent être présents.