我试图在其他模块中使用我在AppModule中创建的组件。但是,我得到了以下错误:
"Uncaught (承诺):错误:模板解析错误: “联系人-框”不是已知的元素:
我的项目结构非常简单:

我将我的页面保存在页面目录中,其中每个页面都保存在不同的模块(例如customers-模块)中,并且每个模块都有多个组件(比如customers-list-component,customers-add-component等等)。我想在这些组件中使用我的ContactBoxComponent (例如在客户内部--例如ContactBoxComponent)。
如您所见,我在小部件目录中创建了联系人框组件,因此它基本上在AppModule中。我将ContactBoxComponent导入添加到app.module.ts中,并将其放入AppModule的声明列表中。它不工作,所以我谷歌了我的问题,并增加了ContactBoxComponent的导出列表。帮不上忙。我还尝试将ContactBoxComponent放入CustomersAddComponent中,然后将其放入另一个(来自不同模块)中,但我发现了一个错误,即存在多个声明。
我遗漏了什么?
发布于 2020-07-16 21:51:50
这个问题似乎又老又奇怪,但当我试图加载一个模块(延迟加载)并得到相同的错误时,我意识到我缺少了作为更大模块的一部分的组件的一个导出子句。
这个Angular.io链接解释了为什么:模块中的组件/服务,默认情况下保持私有(或受保护)。要把它们公诸于众,你必须出口。
在@Robin的答复上使用@love代码示例进行扩展,这在技术上是我的例子(角8)所缺少的:
@NgModule({
  declarations: [
    SomeOtherComponent,
    ProductListComponent
  ],
  imports: [
    DependantModule
  ],
  exports: [ProductListComponent] 
  //<- This line makes ProductListComponent available outside the module, 
  //while keeping SomeOtherComponent private to the module
})
export class SomeLargeModule { }https://stackoverflow.com/questions/44429996
复制相似问题