我在讨论Angular UI路由器嵌套视图的工作方式时遇到了一些问题 .
我的$ stateProvider看起来像这样:
$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'填充'内容'ui-view .
dashboard.html
<div class="span3">
<!-- A bunch of plain html -->
</div>
<div class="span9" ui-view='content'></div>
我的索引文件(加载整个应用程序)有一个名为“main”的ui视图,似乎工作正常 . 我需要这个才能工作,因为'dashboard-content.html'包含需要在登录站点中可用的菜单项 . 只有“内容”ui视图中的项目才会发生显着变化 . 其他任何东西都只会像应用于链接的“主动”类一样简单 .
1 回答
只需在第二个视图def中使用绝对命名:
文档参考(以及它的一个小引用):
视图名称 - 相对名称与绝对名称
例如,前面的示例也可以写成:
你也可以查看这个以获得更多解释和工作plunker
Angular UI Router - Nested States with multiple layouts
ui router - nested views with shared controller(有关嵌套的一些细节)