你好我使用Angular 4.我有一个带有一些html的组件,我希望它在各种组件中显示。但是当我将模块导入到其他模块中时,它表示它只能在一个模块中定义...我怎样才能使它工作?
我希望param-var能够在globales和resumen中展示。
控制台错误
错误错误:未捕获(在承诺中):错误:类型ParamVarComponent是2个模块的声明的一部分:GlobalesModule和ResumenModule!请考虑将ParamVarComponent移动到导入GlobalesModule和ResumenModule的更高模块。您还可以创建一个新的NgModule,它导出并包含ParamVarComponent,然后在GlobalesModule和ResumenModule中导入NgModule。
PARAM VAR MODULE
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ParamVarRoutingModule } from './param-var-routing.module';
import { ParamVarComponent } from './param-var.component';
import { FormsModule, ReactiveFormsModule} from '@angular/forms';
@NgModule({
imports: [
CommonModule,
ParamVarRoutingModule,
FormsModule,
ReactiveFormsModule
],
declarations: [ParamVarComponent,
]
})
export class ParamVarModule { }
GLOBALES MODULE
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { GlobalesRoutingModule } from './globales-routing.module';
import { GlobalesComponent } from './globales.component';
import {ParamVarComponent} from '../param-var/param-var.component';
import { FormsModule, ReactiveFormsModule} from '@angular/forms';
@NgModule({
imports: [
CommonModule,
GlobalesRoutingModule,
FormsModule,
ReactiveFormsModule,
],
declarations: [GlobalesComponent,ParamVarComponent,
]
})
export class GlobalesModule { }
RESUMEN MODULE
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ResumenRoutingModule } from './resumen-routing.module';
import { ResumenComponent } from './resumen.component';
import { FormsModule, ReactiveFormsModule} from '@angular/forms';
import {ParamVarComponent} from '../param-var/param-var.component';
@NgModule({
imports: [
CommonModule,
ResumenRoutingModule,
FormsModule,
ReactiveFormsModule,
],
declarations: [ResumenComponent,ParamVarComponent,
]
})
export class ResumenModule { }
答案 0 :(得分:1)
创建新的SharedModule
(或任何其他名称,但该名称与Angular'样式指南相匹配)。在那里声明并导出您的ParamVarComponent
。现在,您可以根据需要多次在应用程序的任何其他模块中导入SharedModule
。由于导出了ParamVarComponent
,因此只要这些模块导入SharedModule
,就可以在其他模块中使用它。
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule
],
declarations: [ParamVarComponent],
exports: [ParamVarComponent]
})
export class SharedModule { }
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule,
SharedModule
]
})
export class OtherModule#{ }