【发布时间】:2019-04-13 22:44:47
【问题描述】:
我有一个路由策略,在路由到另一个组件时不会破坏该组件。我想在(重新)路由到组件时调用组件的方法。
到目前为止,我已经尝试使用它们各自的方法 ngAfterContentChecked 和 `ngAfterViewChecked 来实现接口 AfterContentChecked 和 AfteViewChecked。实现其中一个接口的唯一问题是该方法在路由到组件时被多次调用,这对我来说是一个性能问题。
在研究网络时,我没有遇到可以实现以获得所需行为的界面。
解决这个问题的唯一可能性是,在路由器中验证选择了哪个路由/路径,如果是所需的,我调用组件的方法?
【问题讨论】:
-
可以放入
ngOnInit()函数。 -
@SunilSingh 不,我不能,因为
ngOnInit()在组件初始化后只被调用一次,但是如果我重新路由到现有组件,则不会调用ngOnInit再次。我试过了。 -
您可以订阅路由器的事件,只要发生路由更改就会触发。这样你就可以检查你的组件,如果当前路由是你组件的路由并执行你需要的任何方法
-
你可能想看看
Router Events -
@Robin-Hoodie 您提出的解决方案非常有效。将解决方案发布为答案,以便我接受。
标签: angular components angular-routing angular4-router