我再次与ui路由器挣扎。
我正在尝试一些嵌套视图。
导航到url / account / management / Company(由Symfony管理的路由)时会调用主要布局home.html。然后我想让ui路由器启动。
看起来像这样:
<div ui-view="discrimSelector"></div>
<div ui-view="main"></div>
然后这是我的js路由定义:
FlatView.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("");
$stateProvider
.state('flatView', {
url:"",
views: {
'main': {
controller:"flatViewHome",
templateUrl:Routing.generate('_NRtworks_FlatView_elementList')
},
'discrimSelector@flatView': {
templateUrl:Routing.generate('_NRtworks_FlatView_DiscrimSelector')
}
}
});
});
我遵循建议使用第二个视图的全名,但它没有被加载(“主”模板加载很好,我可以在网络标签中看到实际获取了另一个模板的文件但没有插入ui-view)。
我做错了什么?
答案 0 :(得分:0)
从@flatView
删除discrimSelector@flatView
。
符号是uiview @ state。只有当你想加载另一个状态的ui-view时才应该使用它。
E.g。想象一下,你有两个嵌套状态。当您处于子状态时,您想要加载父级(任何祖先)ui-view,那么您将使用此表示法。
$stateProvider
.state('parent', {
views: {
'A': {
...
},
'B': {
...
}
}
})
.state('child', {
views: {
'C': {
...
},
'A@parent': {
...
}
}
});