У меня есть console.log в конструкторе и ngOnInit () Resolver, но которые не зарегистрированы.
resol: {serverResolver: ServerResolverDynamicDataService}},
console.log ( «Конструктор ServerResolverDynamicDataService»);
console.log («ServerResolverDynamicDataService Resolution:»
const appRoutes : Routes =[
{path:"",component:HomeComponent},
{path:"servers",canActivateChild:[AuthGuardService],component:ServersComponent,
children:[
{path:":id",component:ServerComponent,
resolve:{serverResolver:ServerResolverDynamicDataService}},
{path:":id/edit",component:EditServerComponent,canDeactivate:[CanDeativateGuardService]}]},
Resolver:
@Injectable()
export class ServerResolverDynamicDataService implements Resolve<ServerModel>{
constructor(private serversService:ServersService){
console.log("ServerResolverDynamicDataService constructor");
}
resolve(activatedRouteSnapshot: ActivatedRouteSnapshot, routerStateSnapshot:
RouterStateSnapshot): ServerModel | Observable<ServerModel> | Promise<ServerModel> {
console.log('ServerResolverDynamicDataService resolve:'+activatedRouteSnapshot.params['id']);
return this.serversService.getServer(+activatedRouteSnapshot.params['id']);
}
}
Update1: app.module.ts имеет запись этой службы в поставщиках
providers: [ServersService,AuthGuardService,AuthService,CanDeativateGuardService,ServerResolverDynamicDataService],
Всякий раз, когда URL (http://localhost:4200/servers/1?allowToEdit=0&allowTest=2#loadPage
) получает попадание, никакие журналы не поступают от решателя, но есть журналы в коде, и приложение корректно обновляется, если я редактирую любую другую часть журнала приложения. Таким образом, изменения приложения отражают единственную проблему - не вызывается распознаватель.
Update2 Согласно Angular 2+ распознаватели маршрутов не вызывают , если я удаляю родительский сервис canActivateChild, который работает. Но я не знаю, что не так. Пожалуйста, помогите мне понять.