angular ui-router 每个路由多个视图
angular ui-router multiple views per route
在我的应用程序中,我有主要内容区域和屏幕外导航。主屏幕视图通过 angular 中的 ui-view
指令填充。我希望我的屏幕外导航也通过 ui-view
指令填充。我不希望这是一个嵌套视图,我希望这个视图显示与根视图不同但基于相同路径的内容。像这样:
<body>
<ui-view="root"></ui-view> <!-- Main page view is here -->
<div id="OffscreenMenu">
<ui-view="menu"></ui-view> <!-- This content will change each time the url changes -->
</div>
</body>
那么我想要的是不定义多个状态,而是拥有一个状态,该状态将为每个视图显示两个不同的模板。
我找不到任何可行的方法。我搜索了文档,但我只能找到有关嵌套视图的信息。提前致谢。
您可以执行以下操作:
$stateProvider.state('state', {
views: {
'root@': { /* controller, templateUrl */ },
'menu@': { /* controller, templateUrl */ }
}
});
您也可以使用父级 属性:
$stateProvider
.state('topState', {
views: {
'menu@': { /* controller, templateUrl */ }
}
})
.state('state1', {
parent: 'topState',
views: {
'root@': { /* controller, templateUrl */ }
}
})
.state('state2', {
parent: 'topState',
views: {
'root@': { /* controller, templateUrl */ }
}
});
我会将其设置为具有两个子视图的绝对根视图。
.state('app', {
abstract: true,
url: '/',
...
})
.state('app.root', {
...
})
.state('app.menu', {
...
})
在我的应用程序中,我有主要内容区域和屏幕外导航。主屏幕视图通过 angular 中的 ui-view
指令填充。我希望我的屏幕外导航也通过 ui-view
指令填充。我不希望这是一个嵌套视图,我希望这个视图显示与根视图不同但基于相同路径的内容。像这样:
<body>
<ui-view="root"></ui-view> <!-- Main page view is here -->
<div id="OffscreenMenu">
<ui-view="menu"></ui-view> <!-- This content will change each time the url changes -->
</div>
</body>
那么我想要的是不定义多个状态,而是拥有一个状态,该状态将为每个视图显示两个不同的模板。
我找不到任何可行的方法。我搜索了文档,但我只能找到有关嵌套视图的信息。提前致谢。
您可以执行以下操作:
$stateProvider.state('state', {
views: {
'root@': { /* controller, templateUrl */ },
'menu@': { /* controller, templateUrl */ }
}
});
您也可以使用父级 属性:
$stateProvider
.state('topState', {
views: {
'menu@': { /* controller, templateUrl */ }
}
})
.state('state1', {
parent: 'topState',
views: {
'root@': { /* controller, templateUrl */ }
}
})
.state('state2', {
parent: 'topState',
views: {
'root@': { /* controller, templateUrl */ }
}
});
我会将其设置为具有两个子视图的绝对根视图。
.state('app', {
abstract: true,
url: '/',
...
})
.state('app.root', {
...
})
.state('app.menu', {
...
})