简体   繁体   English

更改表单控件 Angular 中的数据

[英]Change data in form control Angular

I have an Angular v6 application.我有一个 Angular v6 应用程序。 Here's my FormGroup这是我的FormGroup

stepperForm: FormGroup;

constructor() {
  this.stepperForm = new FormGroup({
    apps: new FormControl(''),
    params: new FormControl('', SpecifyDetailsStepComponent.isValidJsonValidatorFn()),
  });
}

I have a method where I want to change the data in formControl params :我有一个方法,我想更改formControl params的数据:

const stringData = JSON.stringify(jsonData);
this.stepperForm.setValue({
  apps: new FormControl(''),
  params: new FormControl(stringData, SpecifyDetailsStepComponent.isValidJsonValidatorFn()),
});

I have no error in the console but the data isn't changing at all.我在控制台中没有错误,但数据根本没有改变。

Edit:编辑:

I need to be able to use the validator.我需要能够使用验证器。 Thank you谢谢

You may simply do :你可以简单地做:

this.stepperForm.get('params').setValue(stringData);

And then to take immediate effect for validators.然后对验证者立即生效。

this.stepperForm.get("params").updateValueAndValidity();

Do via Form: this.stepperForm.get('FormControlName').setValue('WhateverData');通过表单执行: this.stepperForm.get('FormControlName').setValue('WhateverData'); Do via FormControl: this.formControl.setValue('whateverData');通过 FormControl 执行: this.formControl.setValue('whateverData');

You can set multiple values at once using below one您可以使用以下一个值一次设置多个值

this.stepperForm.setValue({
    apps: 'newValue',
    params: 'newValue',
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM