我想在用户选择一个选项后立即添加一个表单控件。
我的选择功能:
selected(event: MatAutocompleteSelectedEvent): void {
this.setTechnologies = new Set();
this.setTechnologies.add(this.techInput.nativeElement.value);
}
添加新控制器
this.primaryFormGroup.addControl('tech', new FormControl('', []));
this.primaryFormGroup.valueChanges.subscribe(inputFields => {
if (inputFields) {
inputFields.tech = Array.from(this.setTechnologies);
}
}
我的问题是,在功能inputFields.tech = Array.from(this.setTechnologies);
之前的之前,将执行行selected()
。因此,在这种情况下,inputFields.tech
的值始终为空。
如何首先运行该功能?
答案 0 :(得分:2)
一种方法是在valueChanges
上添加一个delay。这样可以确保selected()
函数在valueChanges
之前运行。
this.primaryFormGroup.valueChanges.pipe(
delay(500)
).subscribe(inputFields => {
if (inputFields) {
inputFields.tech = Array.from(this.setTechnologies);
}
}