在Angular中,当启动服务器后遇到StaticInjectorError错误时,解决方法如下
在Angular中编写以下代码:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { HttpClientModule } from '@angular/common/http';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
HttpClientModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
在终端上运行”ng serve”命令并在浏览器中打开localhost:4200,然后打开检查工具,出现以下错误。
StaticInjectorError(AppModule)[RouterOutlet -> ChildrenOutletContexts]:
StaticInjectorError(Platform: core)[RouterOutlet -> ChildrenOutletContexts]:
NullInjectorError: No provider for ChildrenOutletContexts!
通过搜索找到了下面的文章。
1:将RouterModule(或者由forRoot或forChildren方法生成的其“版本”之一)导入声明了使用该指令的组件的模块中。
2:必须调用RouterModule的forRoot方法。否则,指令所需的服务将无法初始化。
因为原文中写着这样,所以我进行了如下编辑。
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { HttpClientModule } from '@angular/common/http';
import { RouterModule } from '@angular/router';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
HttpClientModule,
RouterModule,
RouterModule.forRoot([])
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
我成功解决了错误。