我是Angular的新手,我正在尝试编写一个简单的模块化应用程序。但是我收到以下错误:
未捕获的错误:模块'SomeModule'导入了意外的指令'SomeComponent'。请添加一个@NgModule批注。
基本上,我不想导入中的所有服务和组件app.module.ts,我想对代码进行模块化,但失败了。
这是 app.module.ts
@NgModule({
declarations: [
AppComponent,
HomeComponent
],
imports: [
BrowserModule,
RouterModule.forRoot(appRoutes),
HttpClientModule,
ReactiveFormsModule,
SomeModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {
}
Run Code Online (Sandbox Code Playgroud)
这是嵌套模块:
@NgModule({
imports: [
CommonModule,
SomeComponent
],
providers: [SomeService],
declarations: [],
exports: [SomeComponent]
})
export class SomeModule {
}
Run Code Online (Sandbox Code Playgroud)
这是嵌套的组件:
@Component({
selector: 'app-index',
templateUrl: './some.component.html',
styleUrls: ['./some.component.css']
})
export class SomeComponent implements OnInit {
somes: Array<ISome>;
constructor(private http: HttpClient, private service: SomeService) {}
ngOnInit() {
this.getSomes();
}
getSomes() {
this.service.getSomes().subscribe(res => {
this.somes = res;
});
}
}
Run Code Online (Sandbox Code Playgroud)
Laz*_*vić 14
您正在尝试“导入”中的组件SomeModule。
imports: [
CommonModule,
SomeComponent
],
Run Code Online (Sandbox Code Playgroud)
您导入模块并声明组件,这正是错误消息告诉您的内容–您尝试导入指令SomeComponent。
模块“ SomeModule”导入了意外的指令“ SomeComponent”。
移动SomeComponent从imports到declarations。
imports: [
CommonModule,
],
providers: [SomeService],
declarations: [
SomeComponent,
],
Run Code Online (Sandbox Code Playgroud)
小智 5
将您的 Somecomponent 移动到声明部分。
NgModule({
imports: [
CommonModule
],
providers: [SomeService],
declarations: [SomeComponent]
})
export class SomeModule {
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16026 次 |
| 最近记录: |