Javascript 角度8分解器未解析
我在解析器的构造函数中有console.log和ngOnInit(),但没有记录它们 解析:{serverResolver:ServerResolverDynamicDataService} log(“ServerResolverDynamicDataService构造函数”) console.log('ServerResolverDynamicDataService resolve:' 解析器:Javascript 角度8分解器未解析,javascript,angular,typescript,angular-ui-router,angular-resolver,Javascript,Angular,Typescript,Angular Ui Router,Angular Resolver,我在解析器的构造函数中有console.log和ngOnInit(),但没有记录它们 解析:{serverResolver:ServerResolverDynamicDataService} log(“ServerResolverDynamicDataService构造函数”) console.log('ServerResolverDynamicDataService resolve:' 解析器: @Injectable() export class ServerResolverDynamicD
@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']);
}
}
每当URL(http://localhost:4200/servers/1?allowToEdit=0&allowTest=2#loadPage
)受到攻击,没有来自解析器的日志,但日志在代码中,如果我编辑应用程序日志的任何其他部分,应用程序将正确刷新。因此,应用程序更改反映了唯一的问题是未调用解析器
更新2
根据if I remove parent canActivateChild service,它正在工作。B但我不知道是什么问题。请帮助我理解。冲突解决程序是一个服务,并且
OnInit
不会在服务中执行。事实上,除了OnDestroy
,服务中没有其他生命周期挂钩
无论如何,我假设您的解析器是在某个地方提供的。如果不是,您应该在其装饰程序中使用一个参数:
@Injectable({providedIn:'root'})
谢谢您的回复,服务在app.module中注册为提供者:[ServersService,AuthGuardService,AuthService,CandeativeGuardService,ServerResolverDynamicDataService],
@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']);
}
}
providers: [ServersService,AuthGuardService,AuthService,CanDeativateGuardService,ServerResolverDynamicDataService],