【发布时间】:2021-10-24 12:26:59
【问题描述】:
我有一个使用 Angular 的 FormBuilder 填写的表单。这是组件打字稿文件中的 FormBuilder 表示:
constructor(private Form: FormBuilder) { }
AddStatusBoxForm = this.Form.group({
cpuTempTopic: [''],
uptimeTopic: [''],
timeTopic: [''],
});
我想创建一个可以将这些表单值放入的数据结构,如下所示:
array: any[] = [this.AddStatusBoxForm.get('cpuTempTopic')?.value,
this.AddStatusBoxForm.get('uptimeTopic')?.value,
this.AddStatusBoxForm.get('timeTopic')?.value];
但是,控制台记录数组会导致空字符串。但是,如果我自己控制台记录 FormBuilder 值,它们会打印出来:
console.log(this.AddStatusBoxForm.get('cpuTempTopic')?.value) // prints out fine
console.log(this.AddStatusBoxForm.get('uptimeTopic')?.value)
console.log(this.AddStatusBoxForm.get('timeTopic')?.value)
console.log(this.array) // prints out empty string
我不知道为什么会这样,我似乎无法将 FormBuilder 值传递给任何类型的数据结构。我也尝试了 Map 并且同样发生在传入的值似乎最终在数据结构中作为空字符串的情况下。然而,自行访问 FormBuilder 值似乎可以正常工作。
我什至尝试通过控制台记录 FormBuilder 中的值的类型,结果是字符串:
console.log(typeof(this.AddStatusBoxForm.get('cpuTempTopic')?.value))
对此的任何帮助将不胜感激。
【问题讨论】:
标签: data-structures angular-forms angular2-formbuilder angular-arrays