我制作了一个具有反应形式组的可重用组件。我有2个输入属性“名称”和“描述”,我正在用ngFor迭代组件以设置这些输入属性。
不幸的是,即使我将表单控件组中的开始/默认值设置为输入属性,当我单击“提交角度”时,也会将这两个输入属性读取为“空”,而不是通过输入属性设置的值。 / p>
表单组+输入属性:
@Input() categoryID;
@Input() categoryTitle;
@Input() categoryDescription;
categoryForm = new FormGroup({
categoryTitle: new FormControl(this.categoryTitle, [Validators.minLength(3), Validators.maxLength(50)]),
categoryDescription: new FormControl(this.categoryDescription, [Validators.minLength(5), Validators.maxLength(200)])
})
提交功能:
this.startLoading();
this.admin.updateCategory(this.categoryForm.value.categoryTitle, this.categoryForm.value.categoryDescription, this.categoryID)
如果我尝试直接提交可以使用的input属性的值,但是如果我对表单进行了修改,则不再提交更改后的值,这样就没有意义了。
答案 0 :(得分:3)
一旦组件视图初始化,就应该创建FormGroup。因此,您可以实现AfterViewInit
并将以下代码放入ngAfterViewInit
function
。
ngAfterViewInit(){
this.categoryForm = new FormGroup({
categoryTitle: new FormControl(this.categoryTitle, [Validators.minLength(3), Validators.maxLength(50)]),
categoryDescription: new FormControl(this.categoryDescription, [Validators.minLength(5), Validators.maxLength(200)])
})
}