我正在开发一个简单的Angular 2应用程序,但我无法重置ngForm但保留默认值:
预期的行为是单击“重置”时,输入框将重置为默认值(本例中为“默认”)以及返回默认值的所有角度特定类(即ng-untouched,ng -pristine等)
我看到的是默认值也被清除,即使我在重置表单后明确设置它也是如此
以下代码段:
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>
TypeScript(省略了导入和@Component):
export class TrainSearchTestComponent implements OnInit {
id: string = 'DEFUALT';
constructor() { }
ngOnInit() { }
onTrainSearchClick(){ }
reset(form: NgForm){
form.resetForm();
this.id = 'DEFUALT';
}
}
答案 0 :(得分:20)
使用form.reset
:
form.reset({ id: this.id });
原始答案(对于angular @ 2有效)
您可以将值传递给resetForm
,该值将用作表单的默认值:
form.resetForm({ id: this.id });
(当然,如果您的表单是FormGroup
并且其控件的名称id
应该具有默认值)