角度 UI 路由器为所有状态提供多个命名视图
Angular ui router multiple named views for all states
我想知道是否有任何方法可以为所有状态编写多个命名视图,最好的例子是当我希望导航栏和页脚出现在所有路由中时。
$stateProvider
.state('home',{
views: {
'home': {
templateUrl: 'home.html',
controller: controller
},
'nav': {
templateUrl: 'nav.html',
controller:controller
},
'footer': {
templateUrl: 'footer.html',
controller: controller
},
}
})
我不想使用 ng-include,因为在这种情况下,导航和页脚是在解析家乡状态之前显示的。
是的,你可以,它实际上写在ui-router
指南中,介绍如何管理多个命名视图。
首先,您需要定义一组抽象状态的特定命名视图,包括将所有内容视图(如home.html
(放入无名称视图(空字符串(中的视图。
您可能已经注意到,下面的演示显示了一个名为 app
的根状态,这也是一个抽象状态(这意味着您无法在此状态下导航(。它有三个视图,每个视图表示一个名称,该名称对应于index.html
中定义的ui-view
。
视图中,包含具有无名称ui-view
的content.html
,该将表示app
状态的所有子状态。通过执行此操作,如果将这些状态添加到app
状态下,则可以共享nav.html
和footer.html
到所有状态。这方面的一个例子是app.home
和app.items
状态。要了解更多信息,请阅读我上面添加的链接。
演示
爪哇语
$urlRouterProvider.otherwise('/home');
$stateProvider.state('app', {
abstract: true,
views: {
nav: {
templateUrl: 'nav.html',
controller: 'NavController as Nav'
},
'': {
templateUrl: 'content.html',
controller: 'ContentController as Content'
},
footer: {
templateUrl: 'footer.html',
controller: 'FooterController as Footer'
}
}
})
.state('app.items', {
url: '/items',
templateUrl: 'items.html',
controller: 'ItemsController as Items'
})
.state('app.home', {
url: '/home',
templateUrl: 'home.html',
controller: 'HomeController as Home'
});
.HTML
索引.html
<ui-view name="nav"></ui-view>
<ui-view></ui-view>
<ui-view name="footer"></ui-view>
内容.html
<hr>
<ui-view></ui-view>
<hr>
根据其余路由,您可能可以利用抽象状态来执行此操作:
Angular UI 路由器 - 处于继承状态的视图也可能有助于为您指明正确的方向。
相关文章:
- WinJs中的视图状态更改事件在哪里
- ASP Web 窗体从视图状态中删除类客户端
- 是否可以在没有视图状态和回发的情况下使用asp.net web表单
- 在 Ember 中,视图/状态逻辑应该位于何处
- 离子选项卡视图 状态提供程序空白视图
- Ember.js 视图状态不追加视图
- AngularJS:使用不同的控制器保持不同视图之间的视图状态
- 离子不会更改视图/状态,除非它是一个选项卡
- Marionette主干:具有多种可能视图状态的子视图
- window.location.reload();正在IE8中丢失视图状态
- 正在删除相关中继器控件的视图状态
- 通过javascript API保存和恢复Tableau图的当前视图状态
- 正在从回发响应更新视图状态
- 使用HTML5本地存储保存视图状态
- ASP的大小. NET视图状态
- 如何在AngularJS中处理实时数据和视图状态
- 回发时无效的视图状态错误
- AngularJS.中分离模型和视图状态
- 使用智能表在视图状态 AngularJs 之间持久化数据
- 使用ASP.NET AJAX填充列表后更新视图状态