2017-03-05 4 views
1

Ich habe Service-und Fehler-Handler-Service, als ich versuchte, den Dialogfeld-Code aufzurufen, gibt es einen Fehler. Öffnen/schließen MdDialog innerhalb angular2 Dienste

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

Nur Instanzen des Providers zulässig, aber Sie haben eine Nicht-Provider-Instanz. –

+0

Wie kann ich den mdDialog innerhalb des Dienstes implementieren? Danke für die Antwort. –

+0

Es gibt keinen anwendbaren Weg, dies zu tun. –

Antwort

0

Sie sollten Ihre Komponente HeaderDialog veröffentlichen, in dieser Komponente haben Sie das Problem.

+0

Aber ich möchte HeaderDialog innerhalb Service verwenden. Vielen Dank. –

+0

Ja, erkläre ich schlecht, ich würde sagen, du musst hier den HeaderDialog Code posten, um zu sehen, ob das Problem ist. Weil der Konstruktor dieser Komponente fehlschlägt – silvelo

Verwandte Themen