Angularjs UI路由器如何自动加载父视图中的嵌套视图作为默认视图

Angularjs UI路由器如何自动加载父视图中的嵌套视图作为默认视图,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我一直在玩UI路由器,因为基于需要多个嵌套视图的不同布局,ngRoute不能完全满足我的需要。在UI路由器中,我不知道如何加载默认嵌套视图,而不必单击链接。我创造了一个粗略的例子来说明我在 基本上,每个视图中有两条主路径,其中有一个容器承载嵌套视图。我想将默认视图加载到它们中,而不必单击ui sref <h1>Auth Panel</h1> <-- main route 1 Just a container for login/forgot/reset <hr

我一直在玩UI路由器,因为基于需要多个嵌套视图的不同布局,ngRoute不能完全满足我的需要。在UI路由器中,我不知道如何加载默认嵌套视图,而不必单击链接。我创造了一个粗略的例子来说明我在

基本上,每个视图中有两条主路径,其中有一个容器承载嵌套视图。我想将默认视图加载到它们中,而不必单击ui sref

<h1>Auth Panel</h1> <-- main route 1
Just a container for login/forgot/reset
<hr/>
<a ui-sref="auth.login">Show Login</a><br> <-- can click to load nested view, but want to autoload
How to show automatically /login within the panel <br>
without having to click show login?
<div ui-view></div> <-- child to autoload with /login

Auth面板在父状态上添加一个参数

.state('parentState', {
//...
    params: {
        autoActivateChild: 'parentState.childState'
    }
//...
})
把这个加在某个地方

$rootScope.$on('$stateChangeSuccess', function(event, toState){
    var aac;
    if(aac = toState && toState.params && toState.params.autoActivateChild){
        $state.go(aac);
    }
});

如果希望在加载父级时自动导航到默认的子级状态,则可以在控制器中触发对特定
ui sref
的单击

angular.element("#childElementId").trigger('click');

谢谢,太好了。我不知道我怎么会错过。$state定义在哪里?非常好的解决方案。Clean.HappyCoder,它需要被注入到任何有事件处理程序的地方(第二个代码块)。可能在模块定义中,请不要让人偏离角度路径。。。在给出任何建议之前,先学习该工具。