Angular报错NG8001:'register'不是已知元素问题排查
报错原因
你遇到的NG8001报错核心原因是组件调用标签和组件定义的选择器不匹配:
- 你在
register.component.ts的@Component配置中,指定的组件选择器是app-register - 但你在
app.component.html里调用组件时用的是<register></register>标签,二者名称不一致,Angular无法识别<register>是你定义的组件。
另外你已经在AppModule的declarations数组中声明了RegisterComponent,模块注册这块是没问题的,不需要额外改模块配置,也不需要加NO_ERRORS_SCHEMA(这个配置会屏蔽所有未知标签报错,不推荐常规场景使用)。
解决方案
有两种可选方案,更推荐第一种,符合Angular官方命名规范:
- 方案一:修改
app.component.html里的组件调用代码,将<register></register>替换为<app-register></app-register>,和定义的selector保持一致即可。 - 方案二:如果需要保留
<register>作为调用标签,修改register.component.ts的selector配置,把selector: 'app-register'改成selector: 'register'即可。
内容的提问来源于stack exchange,提问作者Adriel Silvestre
相关产品推荐
相关产品推荐

