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