Angular 8解析器不起作用:没有解析器提供程序

路飞

我有一台使用解析器的路由器,现在无法正常工作。

这是错误消息:

未捕获(承诺):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,
  ],
})
卡里F.

您忘记在代码中的某处提供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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章