错误:NullInjector错误:FlashMessagesService没有提供程序

时间:2018-08-14 09:36:55

标签: angular mean-stack angular2-flashmessages

当用户单击注销按钮时,我正在使用 Angular 2 Flash消息来显示消息。我在navbar.component.ts中添加了 provider ,以及其他一些实验,但是面临相同的错误。

以下是我执行的步骤:

第1步:

 npm install angular2-flash-messages --save

第二步: app.module.ts

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

    @NgModule({
        imports: [
            // other imports
            // ...
            FlashMessagesModule,
            // ...
        ]
    })

第3步: app.component.html

<app-navbar></app-navbar>

<div class="container">
  <flash-messages></flash-messages>
  <router-outlet></router-outlet>
</div>

第4步: navbar.component.ts

import { Component} from '@angular/core';
import { AuthService } from '../services/auth.service';
import { Router } from '@angular/router';
import { FlashMessagesService } from 'angular2-flash-messages';


@Component({
  selector: 'app-navbar',
  templateUrl: './navbar.component.html',
  styleUrls: ['./navbar.component.css']
})
export class NavbarComponent {
  constructor(private _auth: AuthService, private flashMessagesService: FlashMessagesService, private _router: Router) { }

  onLogoutClick() {
    this._auth.logout();
    this.flashMessagesService.show('You are logged out', { cssClass: 'alert-info'});
    this._router.navigate(['/']);
  }
}

第5步: navbar.component.html

<li><a href="#" (click)="onLogoutClick()" >Logout</a></li>        

Error Image

1 个答案:

答案 0 :(得分:3)

使用forRoot()方法返回NgModule及其提供程序依赖项

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

    @NgModule({
    imports: [
        // other imports
        // ...
        FlashMessagesModule.forRoot(),
        // ...
    ]
})

检查以下内容:https://github.com/moff/angular2-flash-messages