Anauglar2子模块使用在根模块中导入的模块

时间:2017-01-07 06:56:28

标签: angular typescript

我试图理解angular2模块,
在我的应用程序中,模块变得很大,所以我打算用不同的sub-modules将它分开,然后用root module连接。
所以我将sub-modules的所有常见依赖模块导入root-module本身。但是当我编译应用程序时收到错误can't find module

子模块(TransactionModule)

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';

import { RWTxnTotalsComponent } from './txn.totals.component';
import { RWTxnBillInfoComponent } from './txn.billinfo.component';

@NgModule({
    imports: [
        BrowserModule,
        FormsModule,
        HttpModule],
    exports: [
        RWTxnTotalsComponent, // my component
        RWTxnBillInfoComponent // my component, It used  PanelModule inside of it templates.
        ],
    declarations: [
        RWTxnTotalsComponent,
        RWTxnBillInfoComponent
        ],
    providers: [],
})
export class TransactionModule { }

根模块(的AppModule)

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { routing, routedComponents } from './app.routing';

import { AppComponent } from './app.component';
import { RootComponent } from './root.component';

import {DataTableModule,SharedModule, DropdownModule,AutoCompleteModule, GrowlModule, DialogModule, ButtonModule, CalendarModule, CheckboxModule, PanelModule, FieldsetModule, TooltipModule, TabViewModule,  InputMaskModule} from 'primeng/primeng';

//my-modules
import {TransactionModule}  from '../app/transaction/transaction.module'


@NgModule({
  declarations: [
   RootComponent, AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    OverlayPanelModule,
    GrowlModule,
    DialogModule,
    ButtonModule,
    DataTableModule,
    SharedModule,
    DropdownModule,
    AutoCompleteModule,
    CalendarModule,
    ConfirmDialogModule,
    CheckboxModule,
    PanelModule, // This module is used in RWTxnBillInfoComponent sub module's template
    FieldsetModule,
    TooltipModule,
    TransactionModule
  ],
  providers: [
    ],
  bootstrap: [RootComponent]
})
export class AppModule { }

我在PanelModule本身导入了root-module,我无法在Child-module中使用它。
如果我在PanelModule中添加相同的child-module,那么它可以正常工作,但似乎是多次导入 任何人都能以正确的方式纠正我吗?

1 个答案:

答案 0 :(得分:1)

如果要访问“TransactionModule”中的“PanelModule”组件和服务,则必须在“TransactionModule”中导入它。

没关系,如果你在不同的其他模块中导入一个模块......

您还需要导出要在其他模块中使用的组件和服务...