【发布时间】:2017-11-09 19:56:27
【问题描述】:
我正在尝试在其他模块中使用我在 AppModule 中创建的组件。我收到以下错误:
“未捕获(在承诺中):错误:模板解析错误:
'contacts-box' 不是已知元素:
- 如果 'contacts-box' 是一个 Angular 组件,则验证它是该模块的一部分。
- 如果“contacts-box”是 Web 组件,则将“CUSTOM_ELEMENTS_SCHEMA”添加到该组件的“@NgModule.schemas”以禁止显示此消息。
我将我的页面保存在 pages 目录中,其中每个页面保存在不同的模块中(例如 customers-module),并且每个模块都有多个组件(例如 customers-list-component、customers-add-component 等)。我想在这些组件中使用我的 ContactBoxComponent(例如在客户添加组件中)。
如您所见,我在小部件目录中创建了联系人框组件,因此它基本上位于 AppModule 中。我将 ContactBoxComponent 导入添加到 app.module.ts 并将其放入 AppModule 的声明列表中。它没有用,所以我搜索了我的问题并将 ContactBoxComponent 添加到导出列表中。没有帮助。我还尝试将 ContactBoxComponent 放入 CustomersAddComponent 中,然后放入另一个中(来自不同的模块),但我收到一条错误消息,提示有多个声明。
我错过了什么?
【问题讨论】:
-
您的文件夹结构并不简单。这很令人困惑。我建议遵循 Angular Style Guide(链接未提供 b/c 他们更改)并使用他们的文件夹结构建议,然后确保您正确使用模块。这就是这个意思。您在某些时候没有在应用程序摄取的模块中导出或声明您的组件。
-
我遇到了这个问题并通过包含一个组件来解决它,该组件未包含但有一个组件包含它。重点是......我阅读了以下所有答案并尝试了很多东西,然后才找到我的解决方案......所有好的贡献,所以建议阅读不止一个。 HTH
-
如果所有答案都不起作用,请删除并重新创建“联系人框”组件。
标签: angular typescript angular-components angular-module