Angular 2-动态组件模板-如何按需克隆FormControl
我实现了一个动态数据表,到目前为止还不错 在表的底部,有一行包含一些列的输入,这些列允许用户添加新记录,并且每个添加的行都是可编辑的 我的问题是,当我内联编辑一行时,我需要相同的验证,因此我需要克隆我为最下面一行定义的FormControl 下面是我在代码中使用的一个定义示例,当我实例化我的数据表组件时(对于一列) 那么,如何克隆FormControl以将其分配给Dynamicly创建的输入? 我检查了一个FormControl实例,验证程序没有访问器 到目前为止,我唯一的想法是为我的组件提供每列的一个校验器数组,而不是整个FormControl实例 如果有人有更好的主意Angular 2-动态组件模板-如何按需克隆FormControl,angular,clone,angular-reactive-forms,Angular,Clone,Angular Reactive Forms,我实现了一个动态数据表,到目前为止还不错 在表的底部,有一行包含一些列的输入,这些列允许用户添加新记录,并且每个添加的行都是可编辑的 我的问题是,当我内联编辑一行时,我需要相同的验证,因此我需要克隆我为最下面一行定义的FormControl 下面是我在代码中使用的一个定义示例,当我实例化我的数据表组件时(对于一列) 那么,如何克隆FormControl以将其分配给Dynamicly创建的输入? 我检查了一个FormControl实例,验证程序没有访问器 到目前为止,我唯一的想法是为我的组件提供每
谢谢我刚刚遇到这个问题。我用一个普通的新实例解决了以下用例:
@Component({...})
export class FooDialogComponent {
formControl: FormControl;
constructor(@Inject(MAT_DIALOG_DATA) public data: { system: number, control: AbstractControl }, // TODO define interface
public dialogRef: MatDialogRef<UpdateQuantityDialogComponent>)
{
this.formControl = new FormControl(this.data.control.value, this.data.control.validator);
}
}
@组件({…})
导出类FoodDialogComponent{
formControl:formControl;
构造函数(@Inject(MAT_DIALOG_DATA)公共数据:{system:number,control:AbstractControl},//TODO定义接口
公共dialogRef:MatDialogRef)
{
this.formControl=newformcontrol(this.data.control.value,this.data.control.validator);
}
}
使用这种方法,formControl
与注入的AbstractControl
具有相同的状态
和验证器
Ofc,如果控件的值
不是基元类型,则需要执行(深度)复制
希望能有帮助不错,我一定会试试看有什么消息吗@Phil1234是的,很抱歉,我最终改变了创建验证器的方式,我将结构信息保留在另一个数组中,如果我记得很清楚的话,我尝试了您的代码,但没有定义值……不过还是谢谢您
@Component({...})
export class FooDialogComponent {
formControl: FormControl;
constructor(@Inject(MAT_DIALOG_DATA) public data: { system: number, control: AbstractControl }, // TODO define interface
public dialogRef: MatDialogRef<UpdateQuantityDialogComponent>)
{
this.formControl = new FormControl(this.data.control.value, this.data.control.validator);
}
}