2016-11-19 10 views
0

ルーティング用にapp-routeコンポーネントを使用しています。ここでapp-route要素を持つディープパス

は、コードの重要な部分である:

<app-location route="{{route}}"></app-location> 
<app-route 
     route="{{route}}" 
     pattern="/:page" 
     data="{{routeData}}" 
     tail="{{subroute}}"></app-route> 

設定等、ルートフォルダではなく、ユーザーフォルダにならないように、私は私のアプリの構造の明瞭度を改善するためのURLをしたいと思います私のフォルダの構造をコピーします。理想的には、アプリルートパターンは、このようになります

パターン=「/ {フォルダパス} /:ページ」

そして私はフォルダパスとページを受け取ることになる、routeData変化を聞くであろうobsereverを使用しますパラメーター。私は適切にページを-怠惰ロードした後 :

var resolvedPageUrl = this.resolveUrl("/views/" + folderpath + page + '-view.html'); 
this.importHref(resolvedPageUrl, null, this._showPage404, true); 

私はそれが簡単に自分自身をアプリルート要素を削除し、ルートを解析することによって達成されることを知っているが、「公式」がある場合、私は疑問に思いますapp-routeコンポーネントを使用してこの動作を取得する方法です。

ありがとうございます。Jan

答えて

3

一般的な考え方は、ルートを連鎖させることです。ですから、あなたが効果的に、おそらく---------もう一つの要素は、おそらく

<app-route 
    route="{{subRoute}}" 
    pattern="/:page" 
    data="{{subRouteData}}"></app-route> 

は注意してください。この

<app-location route="{{route}}"></app-location> 
<app-route 
    route="{{route}}" 
    pattern="/:folderpath" 
    data="{{routeData}}" 
    tail="{{subRoute}}"></app-route> 

ような何かをするだろう欲しいものを達成するために、これで少し落とし穴があります"page" app-routeは実際にどのようなfolder-pathに関係なく一致し、他の要素にこれを配布している場合は、そのようにしたくないかもしれません。そう

<app-route 
    route="{{subRoute}}" 
    pattern="/reports/:page" 
    data="{{subRouteData}}"></app-route> 

<app-route 
    route="{{subRoute}}" 
    pattern="/appointments/:page" 
    data="{{subRouteData}}"></app-route> 
+0

のように答えてくれてありがとうを -

これを解決するには、subrouteの例でパターンを拡張することです。このアプローチはアプリルート文書で説明されていますが、なぜポリマー開発者が集中ソリューションの代わりにチェーンを選択したのか分かりません。私は単一のページのアプリケーションを作成していると私はサブページに不要な複雑さを追加すると思う。しかし、私はWeb開発の初心者ですので、私はまだ気づいていないいくつかの隠された利点があります。おそらく、巨大なアプリケーションでは利点ですが、中規模のアプリケーションでは過度のものと思われます。良い一日をお過ごしください –

+0

私のgithubリポジトリを見ると、集中化された(akc-router)と分散型のソリューション( 'akc-route' - これは' app-route'に基づいていますが、落ち着きの)。私はSPAを構築していて、 'akc-router'で始まり、' page.js'(これは初期のポリキャストがある集​​中管理された解決策です)に行きましたが、今は 'akc-route'を使っています。アプリの中に深くネストされたカスタム要素のURLの一部だけを制御できる素敵な能力があります。 – akc42

+0

ありがとう、私は間違いなく見ています。 –

関連する問題