我是否需要为实现新接口的每个服务调用编写路由解析器?

Do I need to write a Route Resolver for every service call that implements a new interface?

我对 Angular 4 中的路由有疑问,尤其是处理数据解析。

我的应用程序将通过实施路由解析器受益匪浅;但是,我正在开发一个复杂的 Web 应用程序,在我的一个路由(联系页面)中,有几个组件正在呈现,每个组件都有一个对后端的不同服务调用。每个调用都实现了不同的接口。这是由于数据库限制。

他们是我可以为每个服务编写一个解析器的方法,还是我需要为每个实现新接口的服务调用编写一个解析器?

您可以在单个解析器中执行所有操作,如下所示:

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {

     return Observable.forkJoin(
         this.someService.apiCallA(),
         this.someService.apiCallB(),
         this.someService.apiCallC(),
      )
      .map(([resA, resB, resC]: [ResponseAType, ResponseBType, ResponseCType]) => {
            return {
               aData: resA,
               bData: resB,
               cData: resC
            };

      });

}

然后在你的主页组件中:

constructor(private aRoute: ActivatedRoute) {

      aRoute.data.subscribe((data: any) => {
         // You can find aData, bData, and cData here inside of data
         // Pass them down into the components that need them
      });

   }