我正在使用 ui-router 库(https://github.com/angular-ui/ui-router),我对嵌套视图/路由有些困惑。
这是我配置路由的方式:
$stateProvider.state( 'networks', {
url: '/networks',
access: accessLevels.admin,
abstract: true,
controller: 'NetworksCtrl',
templateUrl: 'networks/networks.tpl.html'
} )
.state( 'networks.list', {
url: '',
access: accessLevels.admin,
template: '<h4><i class="icon-chevron-sign-left icon-large"></i> Please select a network from the left</h4>'
} )
.state( 'networks.detail', {
url: '/{networkId}',
access: accessLevels.admin,
controller: 'NetworkDetailCtrl',
templateUrl: 'networks/networkDetail.tpl.html'
} )
.state( 'networks.detail.show', {
url: '/show/{showCode}',
access: accessLevels.admin,
views: {
'@': { // Override the main view, unfortunately this will break the scope so the network info will be requested again
controller: 'NetworkShowCtrl',
templateUrl: 'networks/networkShowDetail.tpl.html'
}
}
});
当您访问/networks
时,页面左侧会显示一个网络列表(类似于此处的 ui-router 示例:http: //angular-ui.github.io/ui-router/sample/#/contacts)。单击其中一个网络名称会在页面右侧显示详细路由,其中包含可单击的列表shows
。
但是,我感到困惑的部分是,如果我希望networks.detail.show
页面实际存在于它自己的整页上并保持父级的范围network.details
怎么办?我能够想出的唯一方法是在networks.detail.show
路线上,您可以看到我已经覆盖它以使用主视图(这正在杀死范围)。
我觉得我看错了,所以任何建议都将不胜感激。
谢谢你的时间,
-瑞恩·S。