AngularJS:如何使用UI路由器实现默认嵌套状态?

前端之家收集整理的这篇文章主要介绍了AngularJS:如何使用UI路由器实现默认嵌套状态?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前有一个带有单个ui-view的root index.html,它取决于用户所在的“页面”,例如书籍,游戏等.以书籍页面为例,此视图包含我想要在“书籍”空间的所有页面显示内容,但中心内容将根据用户是否开启而有所不同书籍“主页”或看一本特定的书.为方便起见,我的books.html有一个嵌套状态,其中包括books_list.html或books_detail.html.

我想要的网址结构是:

> / books – 显示左/右侧面板以及页面中间的书籍列表.
> / books / 1 – 显示左/右侧面板以及页面中间ID为1的书籍的详细信息(不显示书籍列表).

如何在导航到/ books时将我的状态设置为嵌套视图中的books.html模板和books_list.html模板,但在导航到/ books / 1时有books.html AND books_detail.html?

我目前通过拥有“家庭”子状态来解决这个问题,但这意味着我必须拥有/ books / home,并且/ books显示没有中心内容,因此目前无用.

.state('books',{
    url: '/books',templateUrl: CONFIG.static_url + '/html/books.html',...
})
.state('books.home',{
    url: '/home',templateUrl: CONFIG.static_url + '/html/books_list.html',...
})
.state('books.detail',{
    url: '/:bookId',templateUrl: CONFIG.static_url + '/html/books_detail.html',...
})
我通过声明一个抽象状态实现了我所需要的:
.state('books',{
    abstract: true,url: '/books',{
    url: '',...
})

这意味着/ books加载’books’和’books.home’状态,/ books / 1加载’books’和’books.detail’状态,这就是我需要的.

原文链接:https://www.f2er.com/angularjs/142319.html

猜你在找的Angularjs相关文章