2017-01-17 4 views
2

私はangular2アプリケーションでangular2トースターを扱っています。アプリケーションの起動時にエラーが発生しています。トースターコンテナはトーストを受け取るように初期化されていません

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms'; 
import { RouterModule } from '@angular/router'; 
import { HttpModule } from '@angular/http'; 
import { ReactiveFormsModule } from '@angular/forms'; 
import { ToasterModule, ToasterService} from 'angular2-toaster'; 
import { AppComponent } from './app.component'; 

@NgModule({ 
    imports: [ 
     BrowserModule, 
     FormsModule, 
     AppRoutingModule, 
     HttpModule, 
     ToasterModule 
    ], 
    declarations: [AppComponent, HomeComponent, 
     CategoryListComponent, ConsultSotiComponent, 
     HeaderComponent, FooterComponent], 
    providers: [CategoryListService, LeadService, 
     LookUpDetailsService, CompanyService, ConsultSotiService, ToasterService], 
    bootstrap: [AppComponent] 
}) 

export class AppModule { } 

と私はまた、このモジュールをブートストラップがあります。

私app_moduleは以下の通りです。

私app.componentは以下の通りです:

import { Component } from '@angular/core'; 
import { OnInit } from '@angular/core'; 
import { TranslateService } from './translate/translate.service'; 
import { ToasterService} from 'angular2-toaster'; 
@Component({ 
    selector: 'mp-app',  
    providers: [ToasterService], 
    template: `<div> 
      <toaster-container [toasterconfig]="config1"></toaster-container> 
      <button (click)="popToast()">pop toast</button><br/> 
     </div>` 

}) 

export class AppComponent implements OnInit { 
    title = 'Enterprise MarketPlace'; 
    public translatedText: string; 
    public supportedLanguages: any[]; 

    constructor(private _translate: TranslateService, private toasterService: ToasterService) { 
     this.popToast(); 
    } 

    popToast() { 
     this.toasterService.pop('success', 'Args Title', 'Args Body'); 
    } 

これは​​3210エラーが発生します。

+0

使用この[**答え**](http://stackoverflow.com/questions/42235540/plain-javascript-as-angular-2-service/42235817#42235817)の代わりにモジュールの不必要 – Aravind

答えて

-1

私は同じエラーを持っていたし、私はこのようにそれを解決:まず第一には、別TSでコンポーネントを作成します。その後

import {NgModule, Component} from '@angular/core'; 
import {ToasterModule, ToasterService} from 'angular2-toaster'; 
//import {Root} from './root.component' 

@NgModule({ 
    imports: [ToasterModule], 
    declarations: [toastComponent], 
    providers: [], 
    bootstrap: [toastComponent] 
}) 

@Component({ 
    selector: 'root', 
    template: ` 
      <toaster-container></toaster-container> 
      <button (click)="popToast()">pop toast</button>` 
}) 

export class toastComponent { 
    private toasterService: ToasterService; 

    constructor(toasterService: ToasterService) { 
     this.toasterService = toasterService; 
    } 

    popToast() { 
     this.toasterService.pop('success', 'Args Title', 'Args Body'); 
    } 
} 

、あなたの.moduleで輸入、宣言部でtoastComponent、thatsすべてあなたはあなたのHTMLにタグを入れることができますこれはセレクタtoastrcomponentであることを覚えておいてください...あなたはtoastrコンポーネントを初期化していないのでエラーがありますので私のステップに従ってください。

+1

これは動作しませんし、変数の複数の宣言のコンパイルエラーcozを投げる** toasterService ** – Aravind

8

私は直面しています同様の問題。私はちょうどテンプレートのトースターコンテナを追加していない。 テンプレートにトースターコンポーネントが正しく追加されているかどうかを確認してください。

<toaster-container [toasterconfig]="toasterconfig"></toaster-container> 
+1

この答えは正しいです。 – Dalton

+0

ToasterServiceのシングルトンを保証しながら複数のコンテナだけでなく、ルートの外にトースターコンテナを含めることを可能にする5.0.0リリースがあります。これは、OPによって見られる挙動を修正する –

関連する問題