每当您使用<app-route>
进行子路由时,是否需要多个<app-location>
(例如,在父页面和子页面中)?或者每个应用程序只有一个<app-location>
吗?
答案 0 :(得分:0)
App-route元素有 tail 参数。它包含的部分网址与模式不匹配。
您可以将第一个应用路径的尾应用为第二个的路径,依此类推。
在我的应用程序中,我有一个像 / ax_admin / object / 6 / grid / 5 的网址。 所以我需要总共4个app-routes:
<app-route route="{{route}}" pattern="/ax_admin/:view" data="{{view_route_data}}" tail="{{view_tail}}">
<app-route route="{{view_tail}}" pattern="/:id" data="{{id_route_data}}" tail="{{id_tail}}">
<app-route route="{{id_tail}}" pattern="/:subview" data="{{subview_route_data}}" tail="{{subview_tail}}">
<app-route route="{{subview_tail}}" pattern="/:subid" data="{{subid_route_data}}" tail="{{subid_tail}}">
然后我使用自定义观察器来检测网址更改:
is: "ax-admin",
observers: [
'_routeChanged(route.*)'
],
_routeChanged: function(route){
if(this.view_route_data && route.path == "route"){
this.page = this.view_route_data.view;
if(this.view_tail && this.view_tail.path){
this.object_id = this.id_route_data.id*1 ;
if(this.id_tail && this.id_tail.path){
this.subpage = this.subview_route_data.subview;
if(this.subview_tail && this.subview_tail.path)
this.view_id = this.subid_route_data.subid*1;
}
}
}
}