Angular 角度路由:从不同的路由器链路调用同一模块(或组件)上的不同功能

Angular 角度路由:从不同的路由器链路调用同一模块(或组件)上的不同功能,angular,angular4-router,Angular,Angular4 Router,我有一个名为Items的模块,我导航到它的Items.Component.ts形成许多路由器链接。要跟踪我们来自哪个页面,可以通过路由器路径传递id this.router.navigate(['/items',id passed along with); 但是我想根据我之前的ngOnit()页面调用不同的函数。 如果我从菜单导航,我想调用itemscomponent中的函数A 如果我从类别导航,则为B 还可以从模块(或组件)html文件或component.ts(视图模型)进行所需的导航 如

我有一个名为Items的模块,我导航到它的Items.Component.ts形成许多路由器链接。要跟踪我们来自哪个页面,可以通过路由器路径传递id

this.router.navigate(['/items',id passed along with);
但是我想根据我之前的
ngOnit()页面调用不同的函数。
如果我从菜单导航,我想调用itemscomponent中的函数A 如果我从类别导航,则为B

还可以从模块(或组件)html文件或component.ts(视图模型)进行所需的导航
如何在angular中实现这一点?

您可以使用queryParams,从菜单页发送1,从类别发送2,导航后,您可以执行与查询参数相关的功能

   this.router.navigate(['/items'],id, { queryParams: { functionToexecute: 1  } });
在您的项目组件中:

 constructor(
   private route: ActivatedRoute,
   private router: Router) {}

  ngOnInit() {
   this.route
    .queryParams
    .subscribe(params => {
     if (params['functionToexecute'] === 1){ call functionA} else{call 
      function B}
   });
 }