2016-10-07 3 views

Antwort

1

Mit Version 2.0.0 von angular2-mdl ist es möglich. Hier ist ein funktionierendes plnkr, die zeigt, wie das funktioniert: http://plnkr.co/edit/MSBlJm2ZKtTvMSgf27Yd?p=preview

Sie benötigen eine regelmäßige Komponente zu erstellen:

@Component({ 
    selector: 'dialog-content', 
    templateUrl: 'dialog-content.component.html' 
}) 
export class DialogContentComponent { 

    @Output() emitter = new EventEmitter(); 
    @Input() dialog: MdlDialogComponent; 

    // or this way: constructor(private dialog: MdlDialogComponent){} 

    fireEvent() { 
    this.emitter.emit(1); 
    } 

    closeDialog() { 
    this.dialog.close(); 
    } 
} 

Die html wie sieht folgende:

<p> 
    <button 
     mdl-button 
     mdl-button-type="raised" 
     mdl-colored="primary" 
     mdl-ripple 
     (click)="fireEvent()">Fire event</button> 

    <button 
     mdl-button 
     mdl-button-type="raised" 
     mdl-colored="accent" 
     mdl-ripple 
     (click)="closeDialog()">Close dialog </button> 
</p> 

Wie Sie sehen, gibt es zwei Tasten. Bei jedem Klick auf die Schaltfläche wird die Nummer 1 ausgelöst. Die andere Schaltfläche schließt den Dialog.

Jetzt der interessante Teil: wie man das benutzt. Sie müssen eine mdl-dialog mit Ihrer Komponente als Inhalt eingebettet erstellen:

<button 
     mdl-button 
     mdl-button-type="raised" 
     mdl-colored="primary" 
     mdl-ripple 
     (click)="testDialog.show()">Open dialog</button> 

    Counter: {{counter}} 

    <mdl-dialog #testDialog> 
     <dialog-content [dialog]="testDialog" (emitter)="onEmitting($event)"></dialog-content> 
    </mdl-dialog> 

Die mdl-dialog durch die testDialog Konstante verwiesen wird, und ein Emitter registriert ist. Wenn Sie auf die Schaltfläche klicken, wird der Dialog angezeigt. Wenn Sie auf den "Fire event" -Button klicken, wird das Ereignis von der äußeren Komponente erfasst und ein Zähler wird erhöht, um zu zeigen, dass es funktioniert. Hier ist ein Screenshot:

mdl-dialog screenshot

Verwandte Themen