Angular ui-router:容器视图和默认视图
Angular ui-router : Container view and Default view
我正在努力为下一个状态创建一个容器,将状态定义为视图,分为header, container, footer。
下一个状态作为一个例子是博客,但我不认为有办法把它放到视图中。
一个想法是把HOME视图作为标准,但也失败了。
视图:
<main>
<header ui-view="header"></header>
<content ui-view="home"></content>
<footer ui-view="footer"></footer>
</main>
:
.state('home',{
url:'/',
data: {
pageTitle: 'Home'
},
views: {
'': {
templateUrl: 'content/index.html',
},
'header@home': {
templateUrl: 'content/templates/header.html',
controller: 'HeaderController',
cache: false
},
'home@home': {
templateUrl: 'content/templates/home.html',
controller: 'IndexController',
cache: false
},
'footer@home': {
templateUrl: 'content/templates/footer.html',
//controller: 'FooterController',
cache: false
}
}
})
.state('home.blog',{
url : '/blog',
templateUrl : 'content/templates/blog.html',
controller : 'BlogController',
data: { pageTitle: 'Blog' },
access: {requiredLogin: false}
})
成功!:)
Plunker示例:http://plnkr.co/edit/yRgqiAeEVQl2WVajGgG0?p=preview
在上面更新的问题中,你已经使用了这个柱塞来展示你是如何使它工作的:
.state('home',{
url:'',
abstract: true,
views: {
'': {
templateUrl: 'index.html' // this
},
'header@home': {
templateUrl: 'header.html'
},
'footer@home': {
templateUrl: 'footer.html'
}
}
})
.state('home.index',{
url : '/',
templateUrl : 'home.html'
})
.state('home.blog',{
url : '/blog',
templateUrl : 'blog.html',
});
虽然这个解决方案是有效的,但实际上不是你/我们应该走的路。因为父状态'home',注入到未命名视图 itslef
- templateUrl: 'index.html'
index.htm
)。它们的绝对名称将是'header@home'和'footer@home' (如在代码片段中使用的) -并且似乎都在工作。
但那是多余的。除非我们将布局移动到某个'layout'状态和'layout.html'
- Angular UI Router -有多个布局的嵌套状态 嵌套状态或视图布局与左栏在ui-router?
为什么冗余?因为index.html
已经在发挥(作为 root
)并且它包含这些目标。它们的绝对名称是"header@"answers"footer@"。这才是我们应该走的路。
为了说清楚,有一个更新的plunker和它的片段:
.state('home',{
url:'',
abstract: true,
views: {
'': {
template: '<div ui-view=""></div>'
},
'header': {
templateUrl: 'header.html'
},
'footer': {
templateUrl: 'footer.html'
}
}
})
.state('home.index',{
url : '/',
templateUrl : 'home.html'
})
.state('home.blog',{
url : '/blog',
templateUrl : 'blog.html',
});
点击此处查看更新
相关文章:
- 如何设置默认<ui视图>在另一<ui视图>
- 如何在默认情况下将主干视图设置为singleton
- 将范围添加到角度种子默认视图控制器时,测试套件现在失败
- 更改ng包含或定义默认ui视图
- 如何设置默认视图位置(铯1.6)
- MVC 3,剃刀视图 - 覆盖默认表单帖子
- 更改完整日历的议程日视图中的默认事件宽度
- KML 在加载后覆盖默认视图
- 详细信息视图 ASP.Net 取消客户端的默认编辑模式
- 角度视图自动重定向到默认(否则)视图
- 如果数据字段为空,如何在视图中显示默认值,以角度.js表示
- 默认情况下,引导菜单在移动视图中不折叠
- HTML DOM 从哪里开始?窗?公文?文档默认视图
- 什么'这是文档的要点.默认视图
- Geogebra Javascript - 如何为在图形视图中创建的每个数学对象默认没有标题
- 获取threejs场景和相机方向以设置默认视图
- 如何通过JS在Sharepoint 2013列表视图中触发默认渲染Link
- 谷歌地图地形视图默认
- EmberJS -设置选择视图的默认值
- 主干视图默认值$el