Différence entre $ state.transitionTo () et $ state.go () dans Angular ui-router

108

Dans AngularJS, je vois que parfois nous utilisons $state.transitionTo()et parfois nous utilisons $state.go(). Quelqu'un peut-il me dire en quoi ils diffèrent et quand l'un doit être utilisé par rapport à l'autre?

Barcelone
la source

Réponses:

151

Faites-vous référence au routeur AngularUI ? Si tel est le cas, le wiki spécifie les différences :

$ state.go (vers [, toParams] [, options])

Renvoie une promesse représentant l'état de la transition.

Méthode pratique pour passer à un nouvel état. $state.goappelle en $state.transitionTointerne mais définit automatiquement les options sur { location: true, inherit: true, relative: $state.$current, notify: true }. Cela vous permet d'utiliser facilement un chemin absolu ou relatif et de spécifier uniquement les paramètres que vous souhaitez mettre à jour (tout en laissant des paramètres non spécifiés hériter de l'état actuel).


$ state.transitionTo (vers, toParams [, options])

Renvoie une promesse représentant l'état de la transition.

Méthode de bas niveau pour passer à un nouvel état. $state.go()utilise en transitionTointerne. $state.go()est recommandé dans la plupart des situations.

Michelle Tilley
la source
1
J'ai trouvé plus d'informations dont j'ai besoin à partir de vos liens donnés. Merci beaucoup Brandon :)
Barcelone
1
Apparemment, les valeurs entrées dans la vue ne sont pas effacées si je relance la vue à l'aide de transitionTo. Quoi qu'il en soit, nous pouvons forcer le rafraîchissement des valeurs / js / view? PS - Le rechargement de la page n'est pas une option car la vue est une superposition
Swanidhi
10

$state.transitionTotransite vers un nouvel état. Dans la plupart des cas, vous n'êtes pas obligé de l'utiliser, vous préférerez peut-être$state.go .

Il prend certains paramètres dans un optionsobjet:

  • location: Si truemettra à jour l'url dans la barre d'adresse, sinon false. Si chaîne "replace", mettra à jour l'URL et remplacera également le dernier enregistrement d'historique.
  • inherit: If truehéritera des paramètres d'url de l'url actuelle.
  • relative (stateObject, par défaut null) : Lors de la transition avec un chemin relatif (par exemple '^'), définit de quel état être relatif.
  • notify: Si true, diffusera $stateChangeStartet $stateChangeSuccessévénements.
  • reload: If trueforcera la transition même si l'état ou les paramètres n'ont pas changé, c'est-à-dire un rechargement du même état.

$state.goest une sorte de raccourci qui appelle $state.transitionToavec les options par défaut:

  • location: true
  • inherit: true
  • relative: $state.$current
  • notify: true
  • reload: false

C'est plus pratique car la synthax est plus simple. Vous ne pouvez l'appeler qu'avec un nom d'état.

$state.go('home');
Mistalis
la source