Я вижу, что в AngularJS иногда мы используем, $state.transitionTo()
а иногда используем $state.go()
. Может ли кто-нибудь сказать мне, чем они отличаются и когда один должен использоваться вместо другого?
Я вижу, что в AngularJS иногда мы используем, $state.transitionTo()
а иногда используем $state.go()
. Может ли кто-нибудь сказать мне, чем они отличаются и когда один должен использоваться вместо другого?
Вы имеете в виду маршрутизатор AngularUI ? Если да, то в вики указаны различия :
$ state.go (to [, toParams] [, параметры])
Возвращает Promise, представляющий состояние перехода.
Удобный способ перехода в новое состояние.
$state.go
вызывает$state.transitionTo
внутренне, но автоматически устанавливает параметры на{ location: true, inherit: true, relative: $state.$current, notify: true }
. Это позволяет вам легко использовать абсолютный или относительный путь и указывать только те параметры, которые вы хотите обновить (при этом позволяя неопределенным параметрам наследовать от текущего состояния).
$ state.transitionTo (to, toParams [, параметры])
Возвращает 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
параметры по умолчанию:location
:true
inherit
:true
relative
:$state.$current
notify
:true
reload
:false
Это удобнее, так как синтаксис проще. Назвать его можно только названием штата.
источник