2017-09-22 208 views
0

每次通過app-route元素訪問頁面時,是否可以重新加載頁面(如/ home或/ photos)?每次訪問頁面時重新加載頁面

<app-location route="{{route}}" url-space-regex="^[[rootPath]]"> 
    </app-location> 
    <app-route 
    route="{{route}}" 
    pattern="[[rootPath]]:page" 
    data="{{routeData}}" 
    tail="{{subroute}}"></app-route> 

    <iron-pages 
     selected="[[page]]" 
     attr-for-selected="name" 
     fallback-selection="view404" 
     role="main"> 
     <my-home name="home"></my-home> 
     <my-discover name="discover"></my-discover> 
     <my-pages name="pages"></my-pages> 
     <my-view404 name="view404"></my-view404> 
    </iron-pages> 

在我來說,我已經使用了Polymer Starter Kit和我的web應用程序包含了幾個頁面,如/ home和/發現是通過在左側的抽屜鏈接進行訪問。

現在,應用程序似乎仍然保持頁面或菜單的「狀態」,即使在導航到應用程序內的其他頁面後,例如導航到/發現自/ home,也會保持整個狀態頁面/主頁(滾動位置,打開菜單等),當我重新訪問/主頁。

我希望應用程序在每次頁面被訪問時新載入一個頁面,這樣它就會自動丟棄頁面以前的狀態。這是可能的一些onPageLoad在js或有其他應用程序的選項 - 路線元素可用?

謝謝!

+0

。 ('''')on('connection',function(){reloadPage()})''' –

+0

感謝您的評論,但我打算保留路由客戶端。我真的只是希望頁面在加載後放棄其狀態,並且重新加載似乎是最簡單的方法。 – stefanmuke

回答

1

是否有其他選項可用於應用路由元素?

不知道,但我認爲沒有。

順便說一句,這種行爲來自iron-location(由app-location含稅),你可以在source看到。它只是監聽body元素上的單擊事件,以便在事件傳播到body之前停止事件傳播。

例如如果您使用的是服務器端,你可以使用socketio(未測試)

<dom-module> 
    ... 
    <a href='/discover' on-click='stopPropagation'> 
    ... 
    stopPropagation (event) { 
     event.stopPropagation() 
    } 
    ... 
</dom-module>