NullInjectorError:没有 t 的提供者! NullInjectorError: StaticInjectorError(ba)[Cw -> t]:

Posted

技术标签:

【中文标题】NullInjectorError:没有 t 的提供者! NullInjectorError: StaticInjectorError(ba)[Cw -> t]:【英文标题】:NullInjectorError: No provider for t! NullInjectorError: StaticInjectorError(ba)[Cw -> t]: 【发布时间】:2020-08-15 07:16:22 【问题描述】:

当我运行 Angular 8 应用程序的 prod 构建时,我在控制台中收到此错误。构建运行良好,我已将所有服务包含在我的提供程序中。

我已经运行了以下命令,但没有收到任何错误。 ng build --prod --optimization=false 有什么办法可以告诉你失败了吗?即使我注释掉所有提供者(期望构建失败),我仍然没有收到任何错误。

请让我知道我可以/应该提供哪些其他信息来帮助您。谢谢!

错误信息:

app.module.ts

import  NgModule  from '@angular/core';
import  BrowserModule  from '@angular/platform-browser';
import  BrowserAnimationsModule  from '@angular/platform-browser/animations';
import  FormsModule, ReactiveFormsModule  from '@angular/forms';

import  HttpClientModule, HTTP_INTERCEPTORS, HttpClient  from '@angular/common/http';
import  RouterModule  from '@angular/router';
import  AppComponent  from './app.component';
import  HomeComponent  from './home/home.component';
import  NavMenuComponent  from './nav-menu/nav-menu.component';

//a bunch more components...

import  AccountModule  from './account/account.module';
import  AccountRoutingModule  from './account/account.routing.module';
import  AuthGuard  from './helpers/auth.guard';
import  ErrorInterceptor  from './helpers/error.interceptor';
import  JwtInterceptor  from './helpers/jwt.interceptor';

import  TemplateService  from './services/template.service';
import  ExerciseService  from './services/exercise.service';
import  ExamService  from './services/exam.service';
import  AuthService  from './services/auth.service';
import  FeatureService  from './services/feature.service';
import  RoleService  from './services/role.service';
import  UserService  from './services/user.service';

@NgModule(
  declarations: [
    AppComponent,
    NavMenuComponent,
    HomeComponent,

  ],
  imports: [
    BrowserModule.withServerTransition( appId: 'ng-cli-universal' ),
    HttpClientModule,
    FormsModule,
    ReactiveFormsModule,
    BrowserAnimationsModule,
    AccountModule,
    AccountRoutingModule,
    RouterModule.forRoot([
       path: '', component: HomeComponent, canActivate: [AuthGuard] ,
      //all routes left out for brevity
    ])
  ],
  //entryComponents: [NewTemplateModal, NewExerciseModal, AddFeaturesModal, SaveSuccessComponent, ErrorComponent],
  providers: [    
    AuthService,
    ExamService,
    ExerciseService,
    FeatureService,
    RoleService,
    TemplateService,
    UserService,
    HttpClient,
     provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true ,
     provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true ,
  ],
  bootstrap: [AppComponent]
)
export class AppModule  

构建:

【问题讨论】:

你们有服务吗? 抱歉回复晚了。我没有服务't'。只是错过了一个空的提供者:在我的组件中。 【参考方案1】:

原来这是一件愚蠢的事情......

在我的一个组件中,我有providers:[]。一旦我完全删除它,它就开始工作了。

希望这可以帮助其他人!

【讨论】:

你救了我的命。刚刚从 app.module.ts 中删除了 providers:[]【参考方案2】:
@Injectable(
    providedIn: 'root'
)
export interface Cars 
    number: number;
    model: string;
    owner: string;
    ownerPhone: string;

对我来说,错误是我的@decorator 在服务中无效

【讨论】:

以上是关于NullInjectorError:没有 t 的提供者! NullInjectorError: StaticInjectorError(ba)[Cw -> t]:的主要内容,如果未能解决你的问题,请参考以下文章

NullInjectorError:ReducerManager 没有提供程序

角度业力 - NullInjectorError:InjectionToken 配置没有提供者

NullInjectorError:没有 HttpClient 的提供者

NullInjectorError:没有提供 DecimalPipe

Angular 9:NullInjectorError:没有 CompilerFactory 的提供者

Angular:NullInjectorError:没有HttpClient的提供者[重复]