Javascript 角网络中的路由服务

Javascript 角网络中的路由服务,javascript,angular,typescript,Javascript,Angular,Typescript,在另一个问题上,我读到在服务中使用路由器是不好的做法。我理解这一点,在组件中使用它更好,因为在这里我可以直接访问用户交互,但我想知道在我的情况下,在服务中使用路由器是否更好: 我有一个web应用程序,我想在其中导航到不同的元素。根据用户导航到元素的方式,我希望有不同的行为。在导航到的组件中,我要检查完成了哪些导航。目前,我使用一个在导航到组件之前设置的标志来执行此操作 所以我有不同的代码部分是这样工作的: 导航1: this.someFlagService.alternativeNavigati

在另一个问题上,我读到在服务中使用路由器是不好的做法。我理解这一点,在组件中使用它更好,因为在这里我可以直接访问用户交互,但我想知道在我的情况下,在服务中使用路由器是否更好:

我有一个web应用程序,我想在其中导航到不同的元素。根据用户导航到元素的方式,我希望有不同的行为。在导航到的组件中,我要检查完成了哪些导航。目前,我使用一个在导航到组件之前设置的标志来执行此操作

所以我有不同的代码部分是这样工作的:

导航1:

this.someFlagService.alternativeNavigation = true; //set flag to true
this.router.navigate(['/componentToNavigate']); //navigate to component
导航2:

this.someFlagService.alternativeNavigation = false; // set flag to false
this.router.navigate(['/componentToNavigate']); //navigate to component
要导航到的组件:

if(this.someFlagService.alternativNavigation) //do a 
else // do b      

因此,在我导航的每个组件中,我都需要设置我的标志。我想知道,如果我只从一个服务导航,我可以在我的服务中设置标志。我真的不明白,为什么在包含导航参数的中央导航服务中使用路由器是不好的做法。我不想将某些参数作为查询参数传递,因为当参数可以取任何值时,这会使错误处理变得更加困难。

您也不需要服务,角度路由也支持传递数据。检查:您可以直接从路由器传递数据。看看这个。