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