2017-07-04 5 views
1

非常に単純な質問ですが、カスタム要素内でURLが変更されたときに何かを実行したいと思います。PolymerのURL変更のためのオブザーバーを設定するには?

現在、私は持っている:

Polymer({ 
    is: 'my-element', 
    properties: { 
     ... 
    }, 
    listeners: { 
     'playbutton.tap': 'playbuttonTap' 
    }, 
    playbuttonTap: function(e) { 
     document.getElementById('playbutton').style.display = "none"; 
    }, 
    observers: [ 
     '_routePageChanged()' 
    ], 
    _routePageChanged: function() { 
     console.log('STOP MOVIE') 
    } 
}); 

しかし、これは動作しません。

答えて

4

あなた_routePageChanged観察者が実際にプロパティを観察されていません...

私は<app-route>のように、アドレスバーを見るために要素を追加することをお勧め:

<app-location route="{{route}}"></app-location> 

次にあなたがへの変更を監視することができますroute.pathプロパティは次のようになります。

observers: [ 
    '_routeChanged(route.path)' 
] 
+0

Polymerを使用せずにルート変更を検出する方法はありますか?私は、URLが変わるたびにコードを実行するChrome拡張機能を書いていますが、Polymerは何とか 'window.onload'、' window.beforeunload'を起動せずにURLを魔法のように更新するかのように見えます。 'window.history.pushState'、 window.history.replaceState'関数です。問題のアプリは「」を使用しています。聞いたり、URLの変更を検出するためにラップできる機能がありますか? –

関連する問題