ABService想象一个具有方法isAResponsible: () => boolean和两个模块的服务:AModule和BModule 。
问题是:是否可以根据返回值在AModule和之间进行切换?如果值发生变化,我们如何“重新路由”和重新渲染?可能对其他服务有多种依赖关系,因此最好以某种方式使用 DI 系统。BModuleisAResponsibleisAResponsibleABService
示例:如果感兴趣的路线是/aorb且ABService.isAResponsible返回true,那么我们希望路线AModule。然而,如果ABService.isAResponsible返回,false我们希望BModule管理进一步的路由。请注意,一切都应该发生在共享路线上。
我尝试与守卫和canActivate/canLoad但没有成功:
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { AorBActivateGuard } from './aorb-activate.guard';
import { ABService } from './ab.service'; …Run Code Online (Sandbox Code Playgroud)