Javascript 角度UI路由器嵌套视图问题
我在探索角度UI路由器嵌套视图的工作方式时遇到了一些问题 我的$stateProvider如下所示:Javascript 角度UI路由器嵌套视图问题,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我在探索角度UI路由器嵌套视图的工作方式时遇到了一些问题 我的$stateProvider如下所示: $stateProvider .state('login', { url: "/login", views: { 'main': { templateUrl: "static/templates/login.html", controller: 'LoginCtrl' } } }) .state('dashboard', { u
$stateProvider
.state('login', {
url: "/login",
views: {
'main': {
templateUrl: "static/templates/login.html",
controller: 'LoginCtrl'
}
}
})
.state('dashboard', {
url: "/dashboard",
controller: 'DashboardCtrl',
views: {
'main': {
templateUrl: "static/templates/dashboard.html",
},
'content' : {
templateUrl: 'static/templates/partials/dashboard-content.html',
controller: 'DashboardContentCtrl'
}
}
});
我的目标是动态加载“dashboard.html”模板(这很有效)。但在此之后,用“dashboard content.html”填充“content”ui视图
dashboard.html
<div class="span3">
<!-- A bunch of plain html -->
</div>
<div class="span9" ui-view='content'></div>
我的索引文件(加载整个应用程序)有一个名为“main”的用户界面视图,看起来工作正常。我需要它来工作,因为“dashboard content.html”包含的菜单项需要在登录站点中可用。只有“内容”ui视图中的项目将发生显著更改。其他任何东西都会有一些简单的东西,比如应用于链接的“活动”类。只需在第二个视图def中使用绝对命名:
// instead fo this
// 'content' : {
// use this
'content@dashboard' : {
templateUrl: 'static/templates/partials/dashboard-content.html',
controller: 'DashboardContentCtrl'
}
文档参考(以及其中的一个小引用):
在幕后,每个视图都会被分配一个绝对名称,该名称遵循viewname@statename
,其中viewname是view指令中使用的名称,state name是州的绝对名称,例如contact.item。您还可以选择以绝对语法编写视图名称
例如,前面的示例也可以写成:
.state('report',{
views: {
'filters@': { },
'tabledata@': { },
'graph@': { }
}
})
您还可以检查此项以了解更多解释和工作原理
- (有关嵌套的一些详细信息)