Bar*_*ona 103 javascript url-routing angularjs angular-ui angular-ui-router
在AngularJS中,我看到有时我们使用$state.transitionTo(),有时我们使用$state.go().任何人都可以告诉我他们的差异,以及何时应该使用另一个?
Mic*_*ley 145
你指的是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()建议在大多数情况下使用.
$state.transitionTo转向一个新的国家.在大多数情况下,您可能不喜欢使用它$state.go.
它需要一个options对象中的一些参数:
location:如果true将更新位置栏中的URL,如果false不更新.如果是字符串"replace",则会更新网址并替换上一条历史记录.inherit:If true将从当前url继承url参数.relative (stateObject,default null):当使用相对路径(例如'^')进行转换时,定义哪个状态是相对的.notify:如果true,将播出$stateChangeStart和$stateChangeSuccess事件.reload:如果true状态或参数没有改变,将强制转换,也就是重新加载相同的状态.$state.go是一种使用默认选项调用的快捷方式$state.transitionTo:
location: trueinherit: truerelative: $state.$currentnotify: truereload: false由于synthax更简单,因此更方便.您只能使用州名称来呼叫它.
$state.go('home');
Run Code Online (Sandbox Code Playgroud)