有一个名为" card"在应用程序中使用很多,所以我决定在任何导入 app.module
的应用程序中保留它以两种方式尝试: 1 - 将 card.component 导入AppComponent之后的声明中。 2-I将卡转换为模块并导入导入。
在所有案例中都没有解决问题,错误仍然存在。 "卡不是已知元素"
Obs:在情况2中,是的,我导出了卡内的组件。模块
...代码
情况1(声明):
// app.module.ts
import { CardComponent } from './components/card/card.component';
@NgModule({
declarations: [
AppComponent,
CardComponent
],
情况2(导入模块):
// app.module.ts
import { CardModule } from './components/card/card.module';
imports: [
BrowserModule,
HttpClientModule,
CardModule,
卡片代码
// card.component.ts
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'card',
templateUrl: './card.component.html',
})
export class CardComponent implements OnInit {
constructor() { }
ngOnInit() { }
}
// card.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CardComponent } from './card.component';
@NgModule({
declarations: [CardComponent],
imports: [ CommonModule ],
exports: [CardComponent],
providers: [],
})
export class CardModule {}
答案 0 :(得分:0)
问题是,如果您尝试在其他模块中使用此CardComponent
或CardModule
,而不仅仅是主AppModule
,则必须在模块中导入它想要使用它们。我建议您插入CardComponent
或将CardModule
导入SharedModule
,然后将导入所有模块。
示例:
首先,您创建CardModule
声明CardComponent
@NgModule({
declarations: [CardComponent]
})
export class CardModule {}
如果您还没有SharedModule
,那么最好创建一个并使用它在整个应用程序中导入/导出公共共享模块。
@NgModule({
imports: [
CommonModule,
CardModule,
...
],
exports: [
CommonModule,
CardModule,
...
]
})
export class SharedModule {}
然后,您可以将SharedModule
导入AppModule
,这样您在其中声明的组件就可以使用您在SharedModule
中分享的所有内容。
@NgModule({
imports: [
...
SharedModule
]
...
})
export class AppModule {}
将SharedModule
导入任何其他功能模块将为您提供模块所需的所有基本输入。
@NgModule({
imports: [SharedModule],
...
})
export class FeatureModule {}
请注意,如果您想通过它提供任何forRoot
服务,则应在SharedModule
中创建静态方法Singleton
。然后,在将SharedModule
导入您的AppModule
时,您可以将其导入.forRoot()
。