1
我的模板中有一個「複製鏈接」輸入,它應該向用戶顯示當前加載的URL(帶有查詢參數),供用戶複製&粘貼。跟蹤模板中的當前網址
與URL輸入是屬於有一些兒童的父路由模板的一部分:
- Parent route <-- Copy URL link in this template
- Child route
- Child route
- Child route
這意味着,當你瀏覽的孩子航線,URL應該在父更新路線。這實際上很難實施。
- AFAIK沒有用於URL更改的本機事件,所以我無法創建組件並只是跟蹤任何瀏覽器事件。我在
window
上試過hashchange
,但是這顯然只跟蹤#
而不是URL或查詢參數。 - 當頁面加載時,我不能使用
window.location.href
,因爲任何後續到子路由的轉換都不會反映在輸入中。 - 我不能,因爲在該點的URL沒有更新,沒有從中得到與
window.location.href
在didTransition
行動父路徑上的URL(或任何其他途徑鉤)(即我得到的以前 URL)
編輯:
目前,這是一個似乎工作的唯一方法:
// In the parent route:
actions: {
didTransition() {
this._super(...arguments);
Ember.run.schedule('afterRender',() => {
this.set('controller.currentURL', window.location.href);
});
}
}
,但似乎很hacky
檢查更清潔的方法:http://stackoverflow.com/a/39455543/334913 – acorncom