Angular:组件 X 不包含在模块中,并且在模板中不可用

Posted

技术标签:

【中文标题】Angular:组件 X 不包含在模块中,并且在模板中不可用【英文标题】:Angular: Component X is not included in a module and will not be available inside a template 【发布时间】:2018-04-30 10:43:00 【问题描述】:

在我的 Angular 应用程序中,我在测试时使用的组件很少,并且没有包含在任何模块中。

在 WebStorm 中,它向我显示一个 lint 错误说 Component is not included in any module,而我知道这不包括在内,这就是目的。

有没有办法只禁用这个 lint 错误,同时保持所有其他的启用?

Angular:组件“ComponentName”未包含在模块中,并且 在模板中将不可用。考虑将其添加到 NgModule 声明。

我看到this threat,建议禁用所有 Angular lint 错误。但是,我认为仅针对一个问题这样做并不是一个好主意。我正在寻找一种仅禁用此错误的方法。

【问题讨论】:

我也遇到了这个错误,导致我无法运行 UT,如果问题已解决,如果您能分享您的解决方案,我们将不胜感激。 【参考方案1】:

Angular 语言服务不提供抑制特定规则/检查的可能性。请关注https://github.com/angular/angular/issues/13726 获取更新

【讨论】:

运行npm install @angular/language-service 并重新启动IDE,解决了问题。 @angular/language-service 更新到版本 5.2.0 为什么它不会自动执行。为什么我们必须安装一个额外的东西才能在 IDE 中获得它?【参考方案2】:

在Webstorm上,您只需按Alt+Enter,它会显示一个列表,您可以在其中选择disable inspection,它会自动更新所有相同情况的检查规则。

【讨论】:

【参考方案3】:

为我工作:

文件 -> 使缓存无效/重新启动 -> 无效并重新启动

【讨论】:

我认为这个对我有用。我会再验证一点并确认你@Filip【参考方案4】:

我使用 PHPStorm 并且在使用 Angular 4 时也发现了这个问题。我通过 npm install @angular/language-service 修复了它。

【讨论】:

visual studio 代码 有同样的问题。同样的解决方案也奏效了。【参考方案5】:

您可以在类声明上方添加以下注释,它将跳过对该类的检查:

// noinspection AngularMissingOrInvalidDeclarationInModule

您还可以让编辑器为您添加该评论,方法是使用您将鼠标悬停在错误上并转到“检查选项 > 禁止声明”时获得的上下文菜单

【讨论】:

以上是关于Angular:组件 X 不包含在模块中,并且在模板中不可用的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2 innerHTML 忽略表单标签

创建自定义的 Angular 模块

Angular 4,热模块替换附加而不是替换

Angular2无法从导入的模块中识别组件

Angular 2/4:为每个模块加载 sass 变量

在具有@input属性的组件声明Angular模块中要导入什么?