2017-09-12 2 views
2

Ich arbeite an einem angular4-Projekt, wo ich Dialogfelder nacheinander öffnen muss. Ich verwende das Material, um Dialogfelder zu integrieren. Momentan funktioniert ein einzelnes Dialogfeld gut, aber ich möchte ein zweites Dialogfeld öffnen, während das erste noch offen ist und wenn ich das zweite schließe, sollte ich das erste sehen.Wie öffne ich mehrere Dialogfelder in angular4

Ich habe Dialogfeld mit diesem Artikel gemacht: - https://medium.com/@tarik.nzl/making-use-of-dialogs-in-material-2-mddialog-7533d27df41

Gibt es eine Richtlinie oder eine Methode, dies zu tun. Jede Hilfe ist spürbar.

app.component.html: -

<button (click)="dialogBox()"> Open first dialog box </button> 

app.component.ts: -

import { Component, OnInit} from '@angular/core'; 
import { PopupService } from './Popup.service'; 

@Component({ 
    selector: 'app', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.scss'], 
}) 
export class AppComponent implements OnInit { 

    popupResponse:any; 
    constructor(private popupService : PopupService) 
    {} 

    ngOnInit() {} 

    public dialogBox() 
    { 
     this.popupService.dialog(). 
     subscribe(res => {this.popupResponse = res}, 
        err => console.log(err), 
        () => console.log(this.popupResponse) 
       ); 
    } 
} 

Popup.service.ts: -

import { Injectable } from '@angular/core'; 
import { Http} from '@angular/http'; 
import 'rxjs/add/operator/map'; 
import { MdDialogRef, MdDialog, MdDialogConfig } from '@angular/material'; 
import { PopupComponent } from './popup.component'; 

@Injectable() 
export class PopupService { 

    constructor(private http: Http, private dialog: MdDialog) { } 

    dialog() 
    { 
     let dialogOpen: MdDialogRef<PopupComponent>; 
     dialogOpen = this.dialog.open(PopupComponent); 

     return dialogOpen.afterClosed(); 
    } 
} 

popup.component.ts: -

import { Component, OnInit} from '@angular/core'; 
import { MdDialogRef } from '@angular/material'; 

@Component({ 
    selector: 'popup', 
    templateUrl: './popup.component.html', 
    styleUrls: ['./popup.component.scss'] 
}) 
export class PopupComponent implements OnInit { 
    constructor(public dialogRef: MdDialogRef<TeamMembersPopupComponent>) 
    {} 

    ngOnInit() {} 

    secondDialogBox() { 

    } 
} 

popup.component.html: -

<div> 
    <div> 
     <span class="material-icons" (click)="dialogRef.close()">clear</span> 
    </div> 
    <div> 
     <h2> Popup </h2> 
     <button (click)="secondDialogBox()"> Second dialog box </button> 
    </div> 
</div> 

Wie zweites Dialogfeld zu öffnen, aber erstes Dialogfeld nicht in der Nähe ist.

+0

i ihre Plunker gerade versucht, wenn Sie bewegen das geöffnete Dialogfeld 2 innerhalb Ihres ersten Dialogfeldkörpers, sein Arbeiten .... oder mir fehlt etwas? – JayDeeEss

+0

Bitte teilen Sie einen Code. –

Antwort

0

ich habe gerade versucht, ihre Plunker, wenn Sie das offene Dialogfeld 2 in Ihrem ersten Dialogfeld Körper zu bewegen, seine Arbeits .... oder ich etwas fehlt

<div class="col-md-6 col-md-offset-3"> 
    <h1>Home</h1> 
    <p>{{bodyText}}</p> 
    <button (click)="openModal('custom-modal-1')">Open Modal 1</button> 

</div> 

<modal id="custom-modal-1"> 
    <div class="modal"> 
     <div class="modal-body"> 
      <h1>A Custom Modal!</h1> 
      <p> 
       Home page text: <input type="text" [(ngModel)]="bodyText" /> 
      </p> 
      <button (click)="openModal('custom-modal-2')">Open Modal 2</button> 
      <button (click)="closeModal('custom-modal-1');">Close</button> 
     </div> 
    </div> 
    <div class="modal-background"></div> 
</modal> 

<modal id="custom-modal-2"> 
    <div class="modal"> 
     <div class="modal-body" style="height:80px; background-color: red;"> 
      <h1>A Tall Custom Modal!</h1> 
      <button (click)="closeModal('custom-modal-2');">Close</button> 
     </div> 
    </div> 
    <div class="modal-background"></div> 
</modal> 
+0

In Ihrem Code: - Öffnen Sie das erste Dialogfeld und wenn das zweite Dialogfeld geöffnet wird, wird das erste Dialogfeld geschlossen. Aber das ist nicht meine Anforderung. –

+0

gut, wenn Sie das zweite Dialogfeld öffnen, zuerst ist nicht geschlossen, es ist hinter dem zweiten Dialog versteckt .... was ist Ihre Anforderung? – JayDeeEss

+0

Meine Anforderung ist: - Das erste Dialogfeld ist geöffnet und im ersten Dialogfeld erstellen Sie eine Schaltfläche, klicken Sie auf diese Schaltfläche zweiten Dialogfeld anzeigen, aber der erste Dialog ist nicht geschlossen. –

Verwandte Themen