【发布时间】:2017-06-06 19:16:31
【问题描述】:
我正在尝试根据提供的 URL 的参数动态更改页面的标题标签。我通过订阅 Aurelia 路由器的 "router:navigation:success"(或“完成”)事件来做到这一点。
如果页面生命周期从头到尾完成,这可以正常工作,但是,当 URL 在之前的同一页面上更改(使用 this.router.navigateToRoute)时,我订阅的事件不会触发,因此标题标签没有改变。
例如:
- 我导航到
/needs/volunteer。标题为All Volunteering Opportunities - 在此页面上,在一组下拉列表中进行选择,并使用
this.router.navigateToRoute将 URL 更改为/needs/volunteer/city-abc。由于我订阅的事件没有触发,因此标题标签仍显示为All Volunteering Opportunities。 - 如果我在 URL 栏上按回车键,并且 URL 指向
/needs/volunteer/city-abc,标题标签将显示为Volunteering Opportunities in City ABC。这正是我所期望的。
有没有办法订阅指向this.router.navigateToRoute的事件?
我们目前拥有上述功能的原因是,当我们加载带有 URL 参数的页面时,我们会自动将关联的下拉菜单设置为选定的值。这也允许人们共享 URL,从而共享页面内容。
提前感谢您的帮助。
编辑:
我注意到this.router.navigateToRoute 存在trigger: false/true 的选项。我当前设置为 false,然后路由器显示上述功能。
如果我设置trigger: true,我会得到想要的效果,但是我注意到此时会发生完整的页面重新加载。
我显然不希望这种情况发生,所以我还在研究如何订阅与this.router.navigateToRoute 相关的事件。
【问题讨论】:
标签: typescript2.0 aurelia