3
关于angular模块的问题很复杂,我暂且理解你想要定义一个公共模块,然后模块里面有一堆公用组件,这些组件可以在任意其他模块使用,那么这种情况下,你定义的公共模块必须要导出你所有隶属于这个模块的公共组件,在其他模块使用的时候不用导入这些公共组件,只需要导入公共模块即可,例如:
公共模块
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { A } form 'a.component';
import { B } form 'b.component';
import { C } form 'c.component';
@NgModule({
imports: [
CommonModule,
],
exports: [
CommonModule,
AComponent,
BComponent,
CComponent,
],
declarations: [
AComponent,
BComponent,
CComponent,
],
})
export class SharedModule {
}
调用模块
import { SharedModule } from './../shared/shared.module';
import { NgModule } from '@angular/core';
import { CallerComponent } from './caller.component';
@NgModule({
imports: [
CommonModule,
SharedModule,
],
declarations: [
CallerComponent
],
providers: []
})
export class MallModule { }
调用的组件
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-caller',
template: `
<p>{{title}}</p>
<app-a />
<app-c />
<app-b />
`,
styleUrls: []
})
export class CallerComponent implements OnInit {
title:string;
constructor() {
this.title = 'caller';
}
ngOnInit() {
}
}