【发布时间】:2018-03-14 18:23:18
【问题描述】:
我们希望网站的行为是,如果用户单击他们当前所在页面(路由)的菜单链接,则页面(组件)会重新加载。所以任何形式都会被重置等等。
我一直在阅读这不是 Angular 中的内置行为。我一直在使用自定义 RouteReuseStrategy(例如How to implement RouteReuseStrategy shouldDetach for specific routes in Angular 2),即使没有它的复杂性,这种方法似乎也存在一个根本问题。如果我单击当前页面的菜单链接,则不会调用 RouteReuseStrategy 的自定义实现中的任何方法,即使如果我单击指向不同路由的链接,它们都会按预期调用。所以这让我觉得无论我在我的自定义 RouteReuseStrategy 中放什么代码,这都不会起作用,因为如果 routerLink 是当前路由,它就不会被调用。
我也读到了同样的行为(重置表单等)应该通过在表单组件上使用一些 reset() 方法来完成。 这最终会遇到同样的问题。也就是说,我可以通过什么来检测用户是否点击了指向当前路由的 routerLink?
我已经尝试订阅 router.events,它再次触发路由之间的任何实际导航,但如果 routerLink 是当前的,则不会引发任何路由器事件。
当点击当前活动路由的 routerLink 时,我可以挂钩什么?
【问题讨论】:
标签: angular