我有一台使用解析器的路由器,现在无法正常工作。
这是错误消息:
未捕获(承诺):NullInjectorError:StaticInjectorError(AppModule)[BlogResolver]:StaticInjectorError(平台:核心)[BlogResolver]:NullInjectorError:没有BlogResolver的提供程序!
这是解析器的功能代码:
resolve(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): Observable<any> {
const id = route.params.id;
return this.service.findById(
}
这是路由器
{
path: 'blog/:id',
component: BlogpostComponent,
resolve: {
blogpost: BlogResolver,
},
我从来没有遇到过这个错误,也没有发现任何类似的错误。任何帮助表示赞赏。
编辑:
app.module
@NgModule({
declarations: [
AppComponent,
FooterComponent,
NavbarComponent,
HomeComponent,
NotFoundComponent,
],
imports: [
BrowserModule,
HttpClientModule,
FormsModule,
ReactiveFormsModule,
NgbModule,
AppRoutingModule,
MinhaEmpresaModule,
],
providers: [],
bootstrap: [AppComponent],
})
export class AppModule {}
子模块:
@NgModule({
declarations: [
AEmpresaComponent,
ComoChegarComponent,
TrabalheConoscoComponent,
BlogComponent,
BlogpostComponent,
],
imports: [
CommonModule,
ReactiveFormsModule,
AEmpresaRoutingModule,
NgbPaginationModule,
],
})
您忘记在代码中的某处提供BlogResolver。可能在
AppModule:
@NgModule({
imports: [ BrowserModule, FormsModule, AppRoutingModule ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ],
providers: [ BlogResolver ] // **** ADD THIS LINE ****
})
export class AppModule { }
或在相同的BlogResolver中:
@Injectable({
providedIn: "root" // **** ADD THIS LINE ****
})
export class BlogResolver implements Resolve<Somedata> {
data: Somedata[] = [{ id: 1, name: "ABC" }];
如果您想查看相同类型的错误消息,请检查此Stackblitz:https ://stackblitz.com/edit/angular-m8azja
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句