Angular2如何在根模块上声明公共组件

时间:2017-03-03 09:03:52

标签: angular

我在根模块(AppModule)下有2个子模块(ClientModule和AdminModule)。

我有一个公共的库组件(文件上传器),我想在两个子组件中使用它。

所以我只是在根模块中声明公共库组件并在子模块中使用它,然后我收到错误,

  

如果'app-file-uploader'是Angular组件,请验证它是否为   这个模块的一部分。

如果我在每个子模块中声明它都可以。

但我只是想在根模块中声明公共库,以便所有子模块都可以使用它。可能吗?如果是的话,怎么做?

//根模块

@NgModule({
  imports: [
    ...
    ClientModule,
    AdminModule,
  ],
  declarations: [
    FileUploaderComponent //(x)
  ],
  ...
})
export class AppModule { }

// file-uploader

@Component({
    selector: 'app-file-uploader',
    templateUrl: './file-uploader.component.html',
})
export class FileUploaderComponent {

    public constructor() {}
}

1 个答案:

答案 0 :(得分:3)

如果要使用其他模块的声明,则需要导入该其他模块。没有办法解决这个问题。每个模块都需要明确其依赖关系。 没有全局组件,指令或管道。 只能在全球范围内提供服务。