使用 angular-ui-router 创建具有多个嵌套视图的布局
Creating layouts with multiple nested views using angular-ui-router
我已经尝试了几个使用 ui-路由器和状态管理器的例子。我的嵌套视图和路线没有按我希望的那样工作。这是我如何配置状态的示例:
$stateProvider
.state("main", {
abstract: true,
url: "/main",
views: {
"layout": {
templateUrl: "main.index.html"
},
"mainNavigation@main": {
templateUrl: "main-navigation-partial.html"
}
},
onEnter: function() {
console.log("enter main");
}
})
.state("main.dashboard", {
url: "/dashboard",
views: {
"container@main": {
templateUrl:"main-dashboard.html"
}
}
});
如您所见,我有一个名为 main
的抽象状态。所有主视图都将使用 mainNavigation
视图。还有一个容器视图区域,每个部分的内容都将驻留在其中。有一个 index.html
将被所有州使用。所以,我可能会在未来有一个抽象的状态名称 client
以及伴随的状态和视图。
我可以看到单独的 html 文件正在加载,但视图没有填充到正确命名的视图区域中。我有 created a plunk 演示了我想如何管理我的模板和视图。
您的主要状态正在将 main.index.html 加载到名为 layout
的 ui 视图中。在你的 plunker 中,你的根 ui-view 是未命名的。因此,要解决此问题,请为该 ui-view 添加一个名称。
http://plnkr.co/edit/xKDcuk99OACQR73LR0hf?p=preview
<div ui-view='layout'>
或者,您可以保留 ui- 视图未命名并更改视图以反映这一点。
"": {
templateUrl: "main.index.html"
}
有关视图命名的更多信息,请参阅 ui-router wiki。
我已经尝试了几个使用 ui-路由器和状态管理器的例子。我的嵌套视图和路线没有按我希望的那样工作。这是我如何配置状态的示例:
$stateProvider
.state("main", {
abstract: true,
url: "/main",
views: {
"layout": {
templateUrl: "main.index.html"
},
"mainNavigation@main": {
templateUrl: "main-navigation-partial.html"
}
},
onEnter: function() {
console.log("enter main");
}
})
.state("main.dashboard", {
url: "/dashboard",
views: {
"container@main": {
templateUrl:"main-dashboard.html"
}
}
});
如您所见,我有一个名为 main
的抽象状态。所有主视图都将使用 mainNavigation
视图。还有一个容器视图区域,每个部分的内容都将驻留在其中。有一个 index.html
将被所有州使用。所以,我可能会在未来有一个抽象的状态名称 client
以及伴随的状态和视图。
我可以看到单独的 html 文件正在加载,但视图没有填充到正确命名的视图区域中。我有 created a plunk 演示了我想如何管理我的模板和视图。
您的主要状态正在将 main.index.html 加载到名为 layout
的 ui 视图中。在你的 plunker 中,你的根 ui-view 是未命名的。因此,要解决此问题,请为该 ui-view 添加一个名称。
http://plnkr.co/edit/xKDcuk99OACQR73LR0hf?p=preview
<div ui-view='layout'>
或者,您可以保留 ui- 视图未命名并更改视图以反映这一点。
"": {
templateUrl: "main.index.html"
}
有关视图命名的更多信息,请参阅 ui-router wiki。