2017-02-08 23 views
4
私は、単純な角度2アプリに働いていると、トラブルngFormリセットを有するが、デフォルト値を保管しております

:、入力ボックスをクリックして「リセット」するとき形と角度設定されたデフォルト値をリセットする2

予想される動作ですそのデフォルト値(この場合は「Default」)にリセットされ、デフォルトに戻ってくるすべての角度固有のクラス(つまり元々は元に戻っていません。フォームがリセットされた後に明示的に設定した場合でも、デフォルト値がクリアされています。

コードスニペット:

HTML:

<form (ngSubmit)="onTrainSearchClick()" novalidate #trainForm="ngForm"> 
    <input type="text" [(ngModel)]="id" name="someId"/> 
    <button type="button" (click)="reset(trainForm)">Reset</button> 
    <button type="submit">Search</button> 
</form> 

活字体(輸入及び@Componentを残し):

export class TrainSearchTestComponent implements OnInit { 

    id: string = 'DEFUALT'; 

    constructor() { } 
    ngOnInit() { } 
    onTrainSearchClick(){ } 

    reset(form: NgForm){ 
    form.resetForm(); 
    this.id = 'DEFUALT'; 
    } 
} 

答えて

8

使用form.reset

form.reset({ id: this.id }); 

角度のためのオリジナルの答え(有効2)

あなたは、フォームのデフォルト値として使用されるresetFormに値を渡すことができます

form.resetForm({ id: this.id }); 

(もちろん自分のフォームがFormGroupであり、それは名前idとコントロールを持っている場合

+0

これは私のために働いたが、なぜ "this.id = 'Default'"という行が機能しないのか知っていますか?ありがとう –

+1

の場合は、文字列IDをデフォルトの値に設定するだけです。問題は、IDを保持するFormControlをこの値に設定しないことです。 – smnbbrv

+2

私は方法がちょうどリセットされたと思う: form.reset() – Dave

関連する問題