javascript - 'flash-messages' 不是已知元素 angular 6

标签 javascript angular

我有一个奇怪的问题 我在我的 Angular 6 项目中使用了 angular2-flash-messages。 我已经通过 npm 安装了它,将它作为模块添加到 app.module.ts 中

import { FlashMessagesModule } from 'angular2-flash-messages';

将其添加到模块部分

imports: [
BrowserModule,
BrowserAnimationsModule,
DemoMaterialModule,
FormsModule,
FlexLayoutModule,
HttpClientModule,
PerfectScrollbarModule,
SharedModule,
AngularFireModule.initializeApp(environment.firebase, 'angular-auth-firebase'),
AngularFireDatabaseModule,
AngularFireAuthModule,
RouterModule.forRoot(AppRoutes),
FlashMessagesModule.forRoot()

然后我将服务添加到我的 login.component.ts

import { FlashMessagesService } from 'angular2-flash-messages';

但是当我添加

<flash-messages></flash-messages>

到 login.component.html 在错误控制台中触发的错误

ERROR Error: Uncaught (in promise): Error: Template parse errors:
'flash-messages' is not a known element:
1. If 'flash-messages' is an Angular component, then verify that it is part of this module.
2. If 'flash-messages' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("[ERROR ->]<flash-messages></flash-messages>
<div class="login-register"  style="background-image:url(assets/ima"): ng:///AuthenticationModule/LoginComponent.html@0:0
Error: Template parse errors:
'flash-messages' is not a known element:
1. If 'flash-messages' is an Angular component, then verify that it is part of this module.
2. If 'flash-messages' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("[ERROR ->]<flash-messages></flash-messages>
<div class="login-register"  style="background-image:url(assets/ima"): ng:///AuthenticationModule/LoginComponent.html@0:0
    at syntaxError (compiler.js:215)
    at TemplateParser.push../node_modules/@angular/compiler/fesm5/compiler.js.TemplateParser.parse (compiler.js:14702)
    at JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._parseTemplate (compiler.js:22709)
    at JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileTemplate (compiler.js:22696)
    at compiler.js:22639
    at Set.forEach (<anonymous>)
    at JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileComponents (compiler.js:22639)
    at compiler.js:22549
    at Object.then (compiler.js:206)
    at JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileModuleAndComponents (compiler.js:22548)
    at syntaxError (compiler.js:215)
    at TemplateParser.push../node_modules/@angular/compiler/fesm5/compiler.js.TemplateParser.parse (compiler.js:14702)
    at JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._parseTemplate (compiler.js:22709)
    at JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileTemplate (compiler.js:22696)
    at compiler.js:22639
    at Set.forEach (<anonymous>)
    at JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileComponents (compiler.js:22639)
    at compiler.js:22549
    at Object.then (compiler.js:206)
    at JitCompiler.push../node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileModuleAndComponents (compiler.js:22548)
    at resolvePromise (zone.js:814)
    at resolvePromise (zone.js:771)
    at zone.js:873
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
    at Object.onInvokeTask (core.js:4053)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
    at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
    at drainMicroTaskQueue (zone.js:595)

但是如果我添加

<flash-messages></flash-messages>

像这样到主应用程序组件(app.component.html)

<router-outlet>
  <flash-messages></flash-messages>
</router-outlet>

一切正常。

我该如何解决?

最佳答案

您必须为要在其中使用它的每个模块导入 FlashMessagesModule。在某些情况下,您需要在已经导入 .forChild() 时导入它,例如RouterModule.forChild(routes),但不适用于 FlashMessagesModule

关于javascript - 'flash-messages' 不是已知元素 angular 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52787913/

相关文章:

文本框之间的 Javascript 计算

javascript - 如何取消订阅 RxJS 5 可观察对象?

javascript - Keycloak - 如何禁用两个(Angular)客户端应用程序之间的共享 session ?

javascript - What happens to an HTML5 web worker thread when the tab is closed while it's running?

javascript - 在关闭 </body> 标记之前,对 HTML 底部的 Google 跟踪代码管理器代码片段有何影响?

javascript - ng-click 和子选择器

javascript - Chrome 内存/垃圾收集问题

css - 如何在 PrimeNG 中覆盖 ProgressSpinner?

css - 如何设置 ng-bootstrap 的样式 - 替代/deep/

angular - 理解 Gradle "task"语法