Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度6形式-值更改后改变值_Angular_Typescript_Angular6_Angular Forms - Fatal编程技术网

Angular 角度6形式-值更改后改变值

Angular 角度6形式-值更改后改变值,angular,typescript,angular6,angular-forms,Angular,Typescript,Angular6,Angular Forms,我的目标是在每次值更改后对名称值进行变异。(在我的情况下,删除名称值中所有不必要的空格) 我有一个简单的表格: this.form = this.fb.group({ name: new FormControl(''), description: new FormControl(''), }); HTML …但这会触发一个无限循环 在触发valueChanges事件后,通过更改表单中的一个值,实际上是在强制一次又一次调用同一事件,这就是获得循环的原因。您可以尝试在输入上使用ke

我的目标是在每次值更改后对名称值进行变异。(在我的情况下,删除名称值中所有不必要的空格) 我有一个简单的表格:

this.form = this.fb.group({
    name: new FormControl(''),
    description: new FormControl(''),
});
HTML

…但这会触发一个无限循环

在触发valueChanges事件后,通过更改表单中的一个值,实际上是在强制一次又一次调用同一事件,这就是获得循环的原因。

您可以尝试在输入上使用keyup事件:

然后像这样对字符串进行修改

onKey(事件:任意){
//像这样的
//检查event.target.value中的值,并根据需要进行修改
this.name=newName;

}

是的,这就是为什么我问如何修复它:D
<form [formGroup]="form">
    <input formControlName="name">
    <input formControlName="description">
</form>
this.form.valueChanges.subscribe(data => {
    const newName = 'some mutated name';
    this.form.patchValue({
        ...this.form.value,
        name: newName,
    });
    // triggers an infinite loop
});