2016-09-24 11 views
0

私はPolymerを使用しており、アプリケーションルータの設定を取得しようとしています。私は、ユーザーにリンク先ページを誘導するためのアプリを取得できません。ランディングページへのルーティング

私は他のすべての作品を個別にテストしていますので、私のページがレンダリングされることを知っています。

<dom-module id="app-body"> 
    <template> 
     <app-location route="{{route}}" use-hash-as-path></app-location> 
     <app-route route="{{route}}" pattern="/:page" data="{{data}}"></app-route> 

     <iron-pages id="content-pages" selected="{{data.page}}" attr-for-selected="name"> 
      <landing-page name="landing"></landing-page> 
      <lobby-page name="lobby"></lobby-page> 
     </iron-pages> 

</template> 

    <script> 
     window.addEventListener('WebComponentsReady', function() { 
      Polymer({ 
       is: 'app-body', 
       properties: { 
        data: { 
         type: Object, 
         value: function() { 
           return { 
           page: '/landing' 
           }; 
          notify: true 
         } 
        } 
       }, 

       observers: [ 
        '_onRoutePathChanged(route.path)' 
       ], 

       _onRoutePathChanged: function(path) { 
        // If we do not have an initial URL, we redirect to /landing 
        if (!path) { 
        this.set('route.path', '/landing/'); 
        } 
       } 
      }); 
     }); 
    </script> 
</dom-module> 

答えて

1

第1に、プロパティの転送を下位にするためには、私には同じ誤解があるようです。そうではありません。要素からそれを使用する親要素にエクスポートするためには、trueに通知する必要があります。あなたの場合、それは必要ではありません。

は、要素の初期化中にrouteDataが{page: '/landing'}に設定されることがあります。その時点でrouteactiveではないので、routeDataroute.pathにマップされず、app-locationからURLにフィードバックされます。最終的に戻ってマップすると、routeDataに変更はありません。したがって、オブザーバーは、変更されたことを伝えるために発砲しません。

+0

あなたは正しいです。私は、ポリマー要素のライフサイクルの一部である「付着」事象を使用しなければならなかった。このイベントは「要素が文書に添付された後」に発生します。 私は問題に私を近づけたので答えを出したいと思いますが、あなたの投稿の多くは無関係です。私が言ったことを明確にするために何かできることがあれば、私はあなたに答えを与えるでしょう。 –

+0

私はあなたが言っていたことを理解し、すべての関連するものを削除したと思います。 – akc42

関連する問題