2017-03-05 8 views
1

サービスとエラーハンドラサービスがあります。ダイアログボックスのコードを呼び出そうとすると、エラーが発生します。angular2サービス内のMdDialogを開く/閉じる

import { MdDialog, MdDialogRef } from '@angular/material'; 
import { HeaderDialog } from '../dialog-boxes.component'; 

export class MyService { 
dialogRef: MdDialogRef<any>; 
constructor(private dialog: MdDialog) {} 
this.dialogRef = this.dialog.open(HeaderDialog, { 
    height: 'auto', 
    width: 'auto', 
}); 

this.dialogRef.componentInstance.message = 'Hello'; 
this.dialogRef.afterClosed().subscribe(result => { 
    if (result) {} 
    this.dialogRef = null; 
}); 
} 

Unhandled Promise rejection: Error: Invalid providers for "HeaderDialog" - only instances of Provider and Type are allowed, got: [EConfig, Constants, ?undefined?, ...]

+0

プロバイダーのインスタンスのみが許可されていますが、プロバイダー以外のインスタンスがあります。 –

+0

サービス内でmdDialogを実装するにはどうしたらいいですか?返信ありがとう。 –

+0

これを行う方法はありません。 –

答えて

0

あなたが問題を抱えているこのコンポーネントでは、コンポーネントHeaderDialogを投稿する必要があります。

+0

しかし、私はサービス内でHeaderDialogを使いたいと思います。ありがとう。 –

+0

はい、私は悪いことを説明します、私はあなたがここにHeaderDialogコードを投稿する必要があると言いました。このコンポーネントのコンストラクタは失敗している場所なので – silvelo

関連する問題