2017-08-26 33 views
1

我偶然發現了這個問題,因爲在Chrome瀏覽器中輸入的黃色背景角4.3.5Angular 2+(4.3.5)ngForm重置(模板驅動)不包括html格式重置 - Bug或Feature?

模板的表單復位後不走了:

<form #myForm="ngForm"> 
    [...] 
    <button (click)="angularReset()">reset Form (Angular 4)</button> 
    <button (click)="htmlReset()">reset Form (HTML5)</button> 
</form> 

類:

@ViewChild('myForm') 
private myForm: NgForm 
@ViewChild('myForm', { read: ElementRef }) 
private myFormElementRef: ElementRef 

[...] 

private angularReset() { 
    this.myForm.reset() 
} 

private htmlReset() { 
    this.myFormElementRef.nativeElement.reset() 
} 

Angulars表單重置方法不關心重置原生html格式。

這是Angular 4.3.5的缺陷還是功能?

https://angular.io/guide/forms不關心重置本地HTML表單嚮導所以我會說:要麼指南是不完整的,或者是角度錯誤。)

+0

你在這裏重置的意思是什麼? –

回答

0

你可能沒有正確設置模型。

它的工作原理是這樣的:

HTML

<form #myForm="ngForm"> 

     <input name="input1" #input1="ngModel" [(ngModel)]="name"> 

     <button type="reset">reset </button> 
     <button type="button" (click)="myForm.reset()">reset from template</button> 
     <button type="button" (click)="onReset(myForm)">reset from class</button> 
     <button type="button" (click)="onReset2()">reset from class</button> 
</form> 

打字稿

name:string; 
    @ViewChild("myForm") myForm; 

    constructor() { 
    this.name = `Angular! v${VERSION.full}` 
    } 

    onReset(myForm){ 
    myForm.reset(); 
    } 

    onReset2(){ 
    this.myForm.reset() 
    } 

plunker

+0

你見過那個笨蛋嗎? – Vega