2017-05-31 98 views
2

我有一個對角度2材質創建的對話框。我打開模式如下:如何清除對話框材質內部的對角線2

我的組件

.... 
private refDialog; 
@ViewChild('display') display; 

openDialog() { 
    this.refDialog= this.dialog.open(this.display); 
} 
.... 

我的HTML

<ng-template #display> 
    <form (ngSubmit)="onSubmit(f)" #f="ngForm"> 
     <div class='col-md-12'> 
      <md-input-container> 
       <input mdInput placeholder="Name" name="name" [(ngModel)]="product.name" #name="ngModel"> 
      </md-input-container> 
     </div> 

     ..... 

    </form> 
</ng-template> 

我需要打開該對話框之前清除表單。我希望儘可能簡單地做到這一點。我正在使用primeNG對話框,並使用this.f.reset();它的工作。但角材料2的工作方式不同。

我嘗試了一切都沒有成功。這對我不起作用:

.... 
private refDialog; 
@ViewChild('display') display; 
@ViewChild('f') f; 

openDialog() { 
    this.f.reset(); 
    this.refDialog= this.dialog.open(this.display); 
} 

.... 

任何人都可以幫我嗎?

回答

2

看一看的Plunker演示中,我創建了:HERE

這裏是對話部分:

export class DialogComponent implements OnInit{ 
    @ViewChild('myform') myform; 
    constructor(public dialogRef: MdDialogRef<DialogComponent>){} 
    ngOnInit() { 
    this.myform.resetForm(); 
    } 
} 

這裏是根組件:

openDialog(){ 
    this.dialog.open(DialogComponent); 
} 

,你可以看到在GIF如何在每次連接HTML中的硬編碼輸入值被清除並且表單髒狀態時清除該表單,以便使用resetForm()方法 enter image description here

+0

謝謝你的答案。 this.f.restForm()不起作用。我檢查了openDialog()中沒有表單的實例。這可能是他無法重置的原因。我不知道如何獲取角度材質對話框中的表單實例。這似乎是一個示波器問題 –

+0

我剛剛創建了一個重複問題的解決方案,我將嘗試解決該問題並通過更新此答案來回復您。 –

+0

謝謝我的朋友! –