简体   繁体   English

Angular 2使用共享组件(删除x类型在两个模块中声明)

[英]Angular 2 using share components(removing x type is declared in two modules)

I have 3 modules : ControlsModule, genericManagementNameModule & SharedModule. 我有3个模块:ControlsModule,genericManagementNameModule和SharedModule。 I want to use a use a component(DropDown) from the ControlsModule in a component that's part of the genericManagementNameModule. 我想在一个组件中使用来自ControlsModule的组件(DropDown),该组件是genericManagementNameModule的一部分。 I used to declare the (DropDown) in both modules, but since updating angular it gives that "is declared in two modules" error. 我曾经在两个模块中声明(DropDown),但是由于更新了角度,它给出了“在两个模块中声明”错误。 Where do i need to declare the DropDown component? 我需要在哪里声明DropDown组件?

Controls Module 控制模块

import { NgModule } from "@angular/core";
import { CommonModule } from '@angular/common';
import { BrowserModule } from "@angular/platform-browser";
import { FormsModule } from "@angular/forms";

import { MaterialDatePickerComponent } from './Controls/MaterialDatePicker/MaterialDatePickerComponent';
import { DropDownControl } from './Controls/DropDown/DropDownControl';
import { MultiColumnDropDownControl } from './Controls/MultiColumnDropDown/MultiColumnDropDownControl';
import { MultipleSelectionDropDownControl } from './Controls/MultipleSelectionDropDown';

@NgModule({
    imports: [CommonModule, FormsModule],
    declarations: [MaterialDatePickerComponent, MultiColumnDropDownControl, MultipleSelectionDropDownControl, DropDownControl],
    exports: [MaterialDatePickerComponent, DropDownControl, MultiColumnDropDownControl, MultipleSelectionDropDownControl,
        CommonModule, FormsModule]
})
export class ControlsModule { }

InventoryEquipment Module InventoryEquipment模块

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { SharedModule } from './../shared.module';
import { ControlsModule } from './../Assets/Controls.Module';

import { inventoryEquipmentRouting } from './inventoryEquipment.routing';
import { InventoryEquipmentComponent } from './List/inventoryEquipment.component';
import { InventoryEquipmentComponentDefault } from './View/inventoryEquipmentDefault.component';



@NgModule({
    imports: [CommonModule, FormsModule, ReactiveFormsModule, inventoryEquipmentRouting, SharedModule, ControlsModule], 
    declarations: [InventoryEquipmentComponent, InventoryEquipmentComponentDefault],
    exports: [InventoryEquipmentComponent, InventoryEquipmentComponentDefault, ControlsModule],
})
export class InventoryEquipmentModule { }

So i'm basically trying to use DropDownControl from ControlsModule in InventoryEquipmentComponent. 所以我基本上试图在InventoryEquipmentComponent中使用来自ControlsModule的DropDownControl。

Just declare it in one module and add it also to exports: [...] 只需在一个模块中声明它并将其添加到exports: [...]

then add this module to imports: [...] wherever you want to use that component. 然后将此模块添加到imports: [...]您想要使用该组件的任何位置。

See also Declaring multiple components in @ngModule Angular 2 另请参见在@ngModule Angular 2中声明多个组件

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM