【问题标题】:Angular 2: Unable to include component into anotherAngular 2:无法将组件包含到另一个组件中
【发布时间】:2017-07-07 07:20:18
【问题描述】:

StackOverflow 中有很多帖子提供了比 Angular 2 文档更详细的关于如何在另一个自定义组件中包含自定义组件的详细信息。

但是,即使我按照这些说明进行操作(确保注入的组件位于模块定义的 declarations 块中,并确保注入的组件位于组件定义的 directives 块中),它仍然会抛出一个错误:

Unhandled Promise rejection: Template parse errors:
'test' is not a known element:
1. If 'test' is an Angular component, then verify that it is part of this module.
2. If 'test' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schemas' of this component to suppress this message. ("
</footer>

[ERROR ->]<test></test>

您可以查看Github repo。我从a branch 开始尝试解决问题。

我可能忘记了什么?任何指导表示赞赏。

【问题讨论】:

    标签: angular angular2-directives angular2-components


    【解决方案1】:

    它们位于不同的模块中。 将它们放入一个模块并重新构建项目。

    【讨论】:

    • 我特别希望它们成为单独的模块,以便重用和分离关注点。
    【解决方案2】:

    在这种情况下,测试组件应该用作共享模块,当您尝试像功能模块一样使用它时,因为这两个模块都是独立的,Angular 无法找到该模块。

    要么将两个组件放在同一个模块中,要么将测试组件用作共享模块。

    【讨论】:

    • 是的,我想这确实是我正在尝试构建的共享模块。但是,我无法弄清楚这种东西需要什么导入/注入/声明等。文档是全面的,在一次解释一件事时没有区隔。在这种情况下,我会使用注入的模块将TestModule 放入模块的imports 块中,但这仍然失败。
    • 您需要创建一个新类作为共享模块,然后在该类中使用导出标签列出您希望用作共享资源的所有组件,然后在功能模块导入中使用共享模块
    • 我确实有TestModule,但如果我把它放在imports 块中也没关系,我仍然会收到错误。
    猜你喜欢
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 2018-07-21
    相关资源
    最近更新 更多