Difference between $state.transitionTo() and $state.go() in Angular ui-router

angular-ui, angular-ui-router, angularjs, javascript, url-routing

Solution

Are you referring to the AngularUI Router? If so, the wiki specifies the differences:

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

Returns a Promise representing the state of the transition.

Convenience method for transitioning to a new state. `$state.go` calls `$state.transitionTo` internally but automatically sets options to `{ location: true, inherit: true, relative: $state.$current, notify: true }`. This allows you to easily use an absolute or relative to path and specify only the parameters you'd like to update (while letting unspecified parameters inherit from the current state).

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

Returns a Promise representing the state of the transition.

Low-level method for transitioning to a new state. `$state.go()` uses `transitionTo` internally. `$state.go()` is recommended in most situations.

Problem

In AngularJS, I see sometimes we use `$state.transitionTo()` and sometimes we use `$state.go()`. Can anyone tell me how they differ and when one should be used over the other?

Original source