AngularJSでは、$state.transitionTo()
を使用することもあれば、$state.go()
を使用することもあります。誰がどのように違いがあり、いつ一方を他方の上で使用する必要があるか教えてもらえますか?
AngularUI Router を参照していますか?その場合、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()
は、ほとんどの状況で推奨されます。
$state.transitionTo
新しい状態に移行します。ほとんどの場合、使用する必要はありません。$state.go
を好むかもしれません。
options
オブジェクトでいくつかのパラメーターを受け取ります。
location
:true
がロケーションバーのURLを更新する場合、false
が更新しない場合。文字列"replace"
の場合、URLを更新し、最後の履歴レコードも置き換えます。inherit
:true
が現在のURLからURLパラメーターを継承する場合。relative
(stateObject、デフォルトのnull
):相対パス(例: '^')で移行する場合、どの状態からの相対状態かを定義します。notify
:true
の場合、$stateChangeStart
および$stateChangeSuccess
イベントをブロードキャストします。reload
:状態またはパラメーターが変更されていなくてもtrue
が強制的に遷移する場合、同じ状態のリロードとも呼ばれます。$state.go
は、デフォルトのオプションで$state.transitionTo
を呼び出す一種のshortcutです。
location
:true
inherit
:true
relative
:$state.$current
notify
:true
reload
:false
シンタックスがより単純であるため、より便利です。状態名でのみ呼び出すことができます。
$state.go('home');