AngularJS:ui路由器选项卡选择默认选项卡

AngularJS:ui路由器选项卡选择默认选项卡,angularjs,Angularjs,我目前正在应用程序中使用ui路由器选项卡()模块 我已经让它的大部分工作,因为我需要,但我想选择一个默认选项卡 下面是我的状态当前如何配置的示例(与上面的示例非常相似!): 因此,目前如果url为“/foo/:id/bar”,我希望默认情况下选择我的第一个选项卡,这是我应该在控制器级别执行的操作吗,因此嗅探当前匹配的状态,如果等于“/foo/:id/bar”,则手动触发另一个状态更改 编辑 好的,当我写这个问题的时候,我想到了一种方法,但不确定它是否真的是一种有角度的方法 因此,在我的控制器代码

我目前正在应用程序中使用ui路由器选项卡()模块

我已经让它的大部分工作,因为我需要,但我想选择一个默认选项卡

下面是我的状态当前如何配置的示例(与上面的示例非常相似!):

因此,目前如果url为“/foo/:id/bar”,我希望默认情况下选择我的第一个选项卡,这是我应该在控制器级别执行的操作吗,因此嗅探当前匹配的状态,如果等于“/foo/:id/bar”,则手动触发另一个状态更改

编辑

好的,当我写这个问题的时候,我想到了一种方法,但不确定它是否真的是一种有角度的方法

因此,在我的控制器代码中,我检查当前状态并相应地设置默认子状态,最后选择我的一个选项卡:

if ($state.current.name === 'state') {
  $state.go('state.substateA');
}

这似乎是一种明智的方法吗?

这是一种很好的方法,请继续:)嘿,不会
$state.go('state.substateA')在SomeController帮助中?我的意思是,在完成了
SomeController
中的所有逻辑之后,只需执行
$state.go('state.substateA')不考虑状态。因为
Somecontroller
会在状态为“state”时被调用,对吗?如果您对其他状态也使用
SomeController
,那么您的解决方案看起来不错。不,我不想在SomeController中立即调用$state.go('state.substateA'),因为这意味着如果url为“/foo/:id/bar/someotherpath”,那么就不会解析'state.substateB',因为$state.go(…)呼叫将阻碍并中断用户对选项卡的粘性选择。
if ($state.current.name === 'state') {
  $state.go('state.substateA');
}