在各种组件中调用一个组件。 Angular 4

时间:2017-07-12 19:30:40

标签: javascript angular

你好我使用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 { }

1 个答案:

答案 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#{ }