带标题和内容的角度ui-view

时间:2016-01-25 06:57:12

标签: angularjs angular-ui-router

使用ui-view的一个主要原因被列为具有多个视图:

main page
    - header
    - content
    - footer
*other page*
    - header
    - content
    - footer

然而,观点似乎与国家有关。如果我的状态为header,则无法将其包含在list detail状态<div ui-view='header'>,因为标头不是list detail中的视图。

我对hacky的答案不感兴趣,因为这似乎是ui-router的主要好处(例如http://www.funnyant.com/angularjs-ui-router/)。如果我无法以干净的方式工作,我将返回默认的角度路由器。

我尝试了什么

我认为我可能需要访问其他州的视图来完成这项工作,但谷歌却没有为此做任何回报。

This solution需要一个单独的布局状态,并且每个状态都以root为前缀,这似乎很笨拙。如果这是广告卖点,那么没有更好的方法吗?

Multiple Named Views docs依赖于为该特定状态定义的所有视图。

This similar question的回答是&#34;使用ng-include&#34;。

Another question on how to create a layout state最接近我想要的,但需要一个hacky根范围,并且每个子范围都重新定义容器@视图。

1 个答案:

答案 0 :(得分:0)

看起来您希望拥有一个具有多个视图的状态,这是一个抽象状态的子视图。

这里描述了抽象状态(https://github.com/angular-ui/ui-router/wiki/Nested-States-&-Nested-Views#abstract-states)。您感兴趣的是示例&#34;要插入一个模板,该模板具有自己的子视图所支持的ui视图。&#34;

请注意,抽象状态不能自己实例化。它仅在使用其子状态之一时使用。在这种情况下,您可能只有一个具有多个抽象状态视图的子状态。