如何在路由解析中获取可观察对象作为输出而不是对象

how to get an observable as output instead of object in route resolve

resolve: {course: ResolveService } // 这给出了 return 中的一个对象。而是得到一个可观察的。可能吗?

export const appRoutes: Routes = [
    { path: 'registration',
      component: SomeComponent,
      canDeactivate: [SomeGuardService],
      resolve: {course: ResolveService } // This gives an object in retrun
     },

//解析

@Injectable()
export class ResolveService implements Resolve<Observable<any>> {

  constructor(private dropDown: DropDownService) { }

  resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
    return this.dropDown.coursesDt;
  }
}

ResolveService中将resolve修改为return一个observable的observable。 resolve 函数将等到 returned observable 发出,然后将其绑定到路由配置中定义的值。为了将一个可观察对象发送到路由组件,您需要将其包装在另一个可观察对象中。像这样:

@Injectable()
export class ResolveService implements Resolve<Observable<any>> {

    constructor(private dropDown: DropDownService) { }

    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Observable<any>> {
        return Observable.of(this.dropDown.coursesDt);
    }
}