Angular ui-routerにおける$ state.transitionTo()と$ state.go()の違い


回答:


151

AngularUIルーターを参照していますか?もしそうなら、wiki は違いを指定します

$ state.go(to [、toParams] [、options])

遷移の状態を表すPromiseを返します。

新しい状態に遷移するための簡易メソッド。内部的に$state.go呼び出します$state.transitionToが、オプションをに自動的に設定します{ location: true, inherit: true, relative: $state.$current, notify: true }。これにより、絶対パスまたは相対パスを簡単に使用して、更新するパラメーターのみを指定できます(指定されていないパラメーターは現在の状態から継承します)。


$ state.transitionTo(to、toParams [、options])

遷移の状態を表すPromiseを返します。

新しい状態に移行するための低レベルのメソッド。内部的に$state.go()使用しtransitionToます。$state.go()ほとんどの状況で推奨されます。


1
私はあなたの与えられたリンクから私が必要とするより多くの情報を見つけました。ブランドンに感謝します:)
バルセロナ

1
どうやら、transitionToを使用してビューを再トリガーしても、ビューに入力された値はフラッシュされません。とにかく、values / js / viewを強制的に更新できますか?PS-ビューはオーバーレイであるため、ページの再読み込みはオプションではありません
Swanidhi

10

$state.transitionTo新しい状態に移行します。ほとんどの場合、それを使用する必要はありません$state.go

それはoptionsオブジェクトのいくつかのパラメータを取ります:

  • locationtrueロケーションバーのURLを更新する場合、更新しfalseない場合。stringの場合"replace"、URLを更新し、最後の履歴レコードも置き換えます。
  • inherittrue現在のURLからURLパラメータを継承する場合。
  • relative (stateObject、default null:相対パス( '^'など)で遷移する場合、どの状態からの相対であるかを定義します。
  • notify:の場合true、イベントとブロードキャスト$stateChangeStart$stateChangeSuccessます。
  • reloadtrue状態またはパラメータが変更されていない場合でも強制的に遷移する場合、別名同じ状態の再ロード。

$state.goデフォルトのオプションで呼び出す一種のショートカット$state.transitionToです:

  • locationtrue
  • inherittrue
  • relative$state.$current
  • notifytrue
  • reloadfalse

シンタックスがシンプルなのでより便利です。状態名でのみ呼び出すことができます。

$state.go('home');
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.