ui-router 视图嵌套时如何指定二级视图显示默认页面?

发布于 2022-09-04 06:55:25 字数 826 浏览 21 评论 0

clipboard.png
具体的情况是这样的,现在一个问题是:当跳转到user页面时,右边的uiview是为空的,要点击了左侧的导航才能插入模板,如何在路由中设置二级视图的默认显示页面呢?
上代码:
`$stateProvider

.state('user', {
    url: '/user',
    views: {
        '': {
           templateUrl: 'public/front/temphtml/usercenter/userindex.html' 
        }
    }  
})
.state('user.a', {
    url: '/a',
    views: {
       'content@user': {
           templateUrl: 'public/front/temphtml/usercenter/a.html',
           controller: 'userCtrl'
       } 
    }
})
.state('user.b', {
    url: '/b',
    views: {
       'content@user': {
           templateUrl: 'public/front/temphtml/usercenter/b.html',
           controller: 'userCtrl'
       } 
    }
})`

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

十二 2022-09-11 06:55:26

已测试,可以解决你的问题。
.state('user', {

url: '/user',
views: {
    '': {
       templateUrl: 'public/front/temphtml/usercenter/userindex.html' ,
       controller: function($state){
            $state.go('user.a');//默认显示第一个tab
        }
    }
}  

})
.state('user.a', {

url: '/a',
views: {
   'content@user': {
       templateUrl: 'public/front/temphtml/usercenter/a.html',
       controller: 'userCtrl'
   } 
}

})
.state('user.b', {

url: '/b',
views: {
   'content@user': {
       templateUrl: 'public/front/temphtml/usercenter/b.html',
       controller: 'userCtrl'
   } 
}

})`

一紙繁鸢 2022-09-11 06:55:26
.state('user', {
    //我觉得你进到user页面直接设置你需要默认显示页面的url就好了
    url: '/a',
    views: {
        '': {
           templateUrl: 'public/front/temphtml/usercenter/a.html' 
        }
    }  
})
.state('user.a', {
    url: '/a',
    views: {
       'content@user': {
           templateUrl: 'public/front/temphtml/usercenter/a.html',
           controller: 'userCtrl'
       } 
    }
})
.state('user.b', {
    url: '/b',
    views: {
       'content@user': {
           templateUrl: 'public/front/temphtml/usercenter/b.html',
           controller: 'userCtrl'
       } 
    }
})`
心意如水 2022-09-11 06:55:26

我一般设置一个默认页面会在某些判断条件下执行 $state.go();

比如我设置了index 的router,然后设置一个 index.homepage

我会在比如用户登录页面后判断如果登录成功直接跳转到 index.homepage 当然 index.homepage中配置的template就是默认的页面;

总值,在你需要的时候直接使用 $state.go()来指向某个路由就行。

隔岸观火 2022-09-11 06:55:26

设置一下默认:

app.config(function($urlRouterProvider){
    $urlRouterProvider.when('', '/index');
});
从来不烧饼 2022-09-11 06:55:26

应该禁止跳转到/user(添加属性 abstract:true )。没有任何理由需要这样做,直接跳转到你想要的路径就好了。

水波映月 2022-09-11 06:55:26

多级路由涉及到的 地址返回问题怎么解决

迷爱 2022-09-11 06:55:26

题主有解决方法了吗,同样问题求解答...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文