首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角2‘分量’不是已知的元素

角2‘分量’不是已知的元素
EN

Stack Overflow用户
提问于 2017-06-08 08:01:32
回答 22查看 270.6K关注 0票数 210

我试图在其他模块中使用我在AppModule中创建的组件。但是,我得到了以下错误:

"Uncaught (承诺):错误:模板解析错误: “联系人-框”不是已知的元素:

  1. 如果“触点盒”是一个角组件,那么验证它是这个模块的一部分。
  2. 如果“联系人-框”是一个Web组件,那么将“CUSTOM_ELEMENTS_SCHEMA”添加到该组件的“@NgModule.schemas”中,以抑制此消息。

我的项目结构非常简单:

我将我的页面保存在页面目录中,其中每个页面都保存在不同的模块(例如customers-模块)中,并且每个模块都有多个组件(比如customers-list-component,customers-add-component等等)。我想在这些组件中使用我的ContactBoxComponent (例如在客户内部--例如ContactBoxComponent)。

如您所见,我在小部件目录中创建了联系人框组件,因此它基本上在AppModule中。我将ContactBoxComponent导入添加到app.module.ts中,并将其放入AppModule的声明列表中。它不工作,所以我谷歌了我的问题,并增加了ContactBoxComponent的导出列表。帮不上忙。我还尝试将ContactBoxComponent放入CustomersAddComponent中,然后将其放入另一个(来自不同模块)中,但我发现了一个错误,即存在多个声明。

我遗漏了什么?

EN

Stack Overflow用户

发布于 2020-07-16 21:51:50

这个问题似乎又老又奇怪,但当我试图加载一个模块(延迟加载)并得到相同的错误时,我意识到我缺少了作为更大模块的一部分的组件的一个导出子句。

这个Angular.io链接解释了为什么:模块中的组件/服务,默认情况下保持私有(或受保护)。要把它们公诸于众,你必须出口。

@Robin的答复上使用@love代码示例进行扩展,这在技术上是我的例子(角8)所缺少的:

代码语言:javascript
运行
复制
@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 { }
票数 3
EN
查看全部 22 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44429996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档