【问题标题】:Angular router events is not firing when navigating with routerLink使用 routerLink 导航时不会触发 Angular 路由器事件
【发布时间】:2024-04-20 02:10:02
【问题描述】:

我有一个组件,我需要使用以下代码检查当前路由 url:

ngOnInit() {
    this.router.events.subscribe((val: any) => {
        if (val instanceof NavigationStart) {
        }
    });
}

由于某种原因,当我使用[routerLink]="['/person/edit', perosn.id] 导航到该组件时,如果我重新刷新页面,则在第一次单击事件的链接时不会触发路由器事件。 然后,如果我再次单击该链接,事件就会被触发。

任何想法为什么它一开始没有被解雇?

【问题讨论】:

    标签: angular router


    【解决方案1】:

    ngOnInit() 只在组件实例化后调用一次,而不是在路由改变时调用。

    您可以注入路由器并订阅它的事件或参数以获取有关路由更改的通知。

    constructor(private route: ActivatedRoute) { }
    ngOnInit() {
         this.route.params.subscribe(val: any) => {
            if (val instanceof NavigationStart) {
            }
        });
    }
    

    【讨论】: