我有這樣的my-app.html
:有兩個不同的網頁是主動路由問題
<app-location route="{{route}}"></app-location>
<app-route route="{{route}}" pattern="/:page" data="{{routeData}}" tail="{{subRoute}}"></app-route>
這是一個相當標準的路由。
其中一個是動態加載(ALA PSK),包含my-gigs.html
子頁面的:
<iron-pages id="pageSelector" role="main" selected="[[page]]" attr-for-selected="name" fallback-selection="view404">
...
<my-gig
name="gig"
route="{{subRoute}}"
</my-gig>
<my-city
name="city"
route="{{subRoute}}"
</my-city>
在my-gig.html
,我希望能夠查看取決於URL特定的演出。所以,我有:
<app-route route="{{route}}" pattern="/:gigId" data="{{routeDataGig}}" active="{{activeGig}}"></app-route>
麻煩的是,當我去到不同的網頁應用程序(比如/city/perth-au
,從my-city.html
顯示),路線上面活躍(!)。它將有,如gigId
,perth-au
(這是完全錯誤的,因爲它顯然不是一個有效的ID)。
我迷路了。每當我有路由問題之前,我會使用active
標誌來檢查路由是否爲實際上處於活動狀態。在這個問題中,我遇到了問題,因爲/city/perth-au
和/gig/445454545
都會同時滿足my-gig.html
中的路由。
我在做什麼錯了......?
廣告,我通過在my-gig.html
支票「解決」這個時刻:
<iron-ajax
id="ajax"
auto
url="{{_makeUrl(routeDataGig.gigId)}}"
handle-as="json"
debounce-duration="300"
last-response="{{response}}"
></iron-ajax>
然後:
_makeUrlIfNotInfo: function(gigId) {
if(this.route.prefix != '/gig') return;
return '/stores/gigs/' + gigId;
}
這基本上是我在做同樣的 - 除了你正在檢查鐵選,而不是'route.prefix' ......我真的很希望我完全做的事情愚蠢,但很好,顯然我不是。 'app-route'確實看起來有根本的缺陷 – Merc