Polymer中的多个<app-location>元素?

时间:2017-03-09 18:32:52

标签: polymer polymer-1.0

每当您使用<app-route>进行子路由时,是否需要多个<app-location>(例如,在父页面和子页面中)?或者每个应用程序只有一个<app-location>吗?

1 个答案:

答案 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;
            }
        }
    }
}