我目前在我的应用程序中使用ui-router-tabs(https://github.com/rpocklin/ui-router-tabs)模块。
我已经完成了大部分工作,但我想选择一个默认标签。
以下是我的状态目前如何配置的示例(几乎与上面的网站示例相同!):
.state('state', {
url: "/foo/:id/bar",
controller: 'SomeController',
templateUrl: 'pageA.html'
}).state('state.substateA', {
url: "/somepath",
templateUrl: 'partials/pageB.html',
controller: 'SomeOtherController'
}).state('state.substateB', {
url: "/someotherpath",
templateUrl: 'partials/pageC.html',
controller: 'AnotherController'
});
所以目前如果网址是" / foo /:id / bar"我想默认选择我的第一个标签,这是我应该在控制器级别做的事情,所以嗅探当前的匹配状态,如果等于" / foo /:id / bar"然后手动触发另一个状态变化?
修改
好的,所以当我写这个问题时,我想出了一个方法,但不确定它是否真的是这样做的有条理的方式。
所以在我的控制器代码中,我检查当前状态并相应地设置一个默认子状态,最终选择我的一个标签:
if ($state.current.name === 'state') {
$state.go('state.substateA');
}
这看起来是一种明智的做法吗?