我目前有一个带有单个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',... })
我通过声明一个抽象状态实现了我所需要的:
原文链接:https://www.f2er.com/angularjs/142319.html.state('books',{ abstract: true,url: '/books',{ url: '',... })
这意味着/ books加载’books’和’books.home’状态,/ books / 1加载’books’和’books.detail’状态,这就是我需要的.