制作组件、指令和管道 public 并在模块外部使用

Make component, directive and pipe public and use outside a module

如何制作组件、指令和管道public? 这是因为当我将它们添加到模块中的声明数组时,它们在声明它们的模块中随处可见并且对模块是私有的。如果我必须在模块外使用应该做什么。

你可以用一个shared Module负责分享common components, pipes and directives
请注意,这只是使用 sharedModule or coreModule 的命名约定,但您可以使用任何其他模块名称 eg xyzModule。重要的是确保在 export array

中声明了常见的东西
import { NgModule }            from '@angular/core';
import { CommonModule }        from '@angular/common';

import { CustomComponent}  from 'path';
import { CustomPipe}       from 'path';
import { CustomDirective}  from 'path';

@NgModule({
  imports:      [ CommonModule ],
  declarations: [ CustomComponent, CustomPipe, CustomDirective],
  exports:      [ CustomComponent, CustomPipe, CustomDirective]
})
export class SharedModule { }

在 App/Root 模块或任何其他功能或像这样延迟加载的功能模块中使用它,

AppModule 或者说 ClientModule

import {SharedModule } from 'path'

@NgModule({

   imports: [..., sharedModule]

})

只需确保相关项目在您模块的导出行中

 exports:      [ CustomComponent, CustomPipe, CustomDirective]

然后任何其他实现该模块的模块都可以访问这些东西