使用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根范围,并且每个子范围都重新定义容器@视图。
答案 0 :(得分:0)
看起来您希望拥有一个具有多个视图的状态,这是一个抽象状态的子视图。
这里描述了抽象状态(https://github.com/angular-ui/ui-router/wiki/Nested-States-&-Nested-Views#abstract-states)。您感兴趣的是示例&#34;要插入一个模板,该模板具有自己的子视图所支持的ui视图。&#34;
请注意,抽象状态不能自己实例化。它仅在使用其子状态之一时使用。在这种情况下,您可能只有一个具有多个抽象状态视图的子状态。