我正在开发一个角度4应用程序,我有两个模块,第一个模块封装了我需要在其他模块中使用的一些功能。例如,我有第一个名为SRModule的模块,我已经导入了SrCrComponent组件:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
// module imports
import { SrCrComponent} from './sr-cr';
@NgModule({
imports: [
CommonModule
],
exports: [
SrCrComponent
],
declarations: [
SrCrComponent
]
})
export class SRModule {}
我想在另一个模块的其他组件中使用SrCrComponent,但我可以弄清楚如何使用。
在我的第二个模块ReportsModule中,我已经导入了SRModule
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { CPComponent } from './cp/cp.component';
import { SRModule } from "../sr-module/sr.module";
@NgModule({
imports: [
CommonModule,
SRModule
],
declarations: [
CPComponent
]
})
export class ReportsModule { }
我的问题是,如何在ReportsModule上使用CPComponent中声明的SrCrComponent组件?
这是我的CPComponent ts文件:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-chart-period',
templateUrl: './chart-period.component.html',
styleUrls: ['./chart-period.component.css']
})
export class CPComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
在我的CPComponent的html中,我有一个sr-gg组件但不起作用,
<h2> Bar Chart</h2>
<sr-gg></sr-gg>
在ReportsModule中显然是'sr-g' is not a known element
,在fac中,这是控制台向我展示的错误,但我不知道我需要声明的位置,或者在导入SrCrComponen时它应该继承。
答案 0 :(得分:2)
ReportsModule导入SRModule,从而导出SRModule中导出的所有内容:[]在您的情况下是SrCrComponent。我假设CpComponent应该是ReportsModule的一部分,即在声明中应该提到CpComponent:[]对于ReportsModule。你提到sr-gg是一个组件,所以如果它应该在SrModule中声明,那么导出应该看起来像export:[SrCrComponent,SrGGComponent]
@NgModule({
imports: [
CommonModule
],
exports: [
SrCrComponent, SrGGComponent
],
declarations: [
SrCrComponent, SrGGComponent
]
})
export class SRModule {}
和
@NgModule({
imports: [
CommonModule,
SRModule
],
declarations: [
ReportsComponent,
ChartPeriodComponent,
ChartSegmentationComponent,
CpComponent
]
})
export class ReportsModule { }
然后它应该工作