Tengo un grupo de formularios que se pasa al componente como parámetro de entrada y necesito pasarlo a un método como objeto de la clase. ¿Existe una manera fácil de convertir el grupo de formularios que contiene el control de formulario en una clase?
Clase
export class CustomerClass{ custNo?: string; CustName?: string; CustAddress: string; }Grupo de formularios
const group: FormGroup = this._fb.group({ CustAddress: this._fb.control('test'), custNo: this._fb.control(''), CustAddress: this._fb.control(''), });Componente
@Input() CustomerGroup: FormGroup; //Now I need this as a object of class to pass it to a function submit() { this.customerservice.processCustomer(CustomerGroup); }Servicio
processCustomer(customer: CustomerClass){ //do stuff }¿Puedo convertir fácilmente el grupo de formularios en una clase? ¿Cómo puedo hacer eso?
¿Intentó obtener el valor del formulario? Devolverá un objeto con las propiedades de la clase.
this.customerservice.processCustomer(this.myForm.value); //in your case if you want to send the form object that you are getting in the input. this.customerservice.processCustomer(this.CustomerGroup?.value);Si su clase solo tiene propiedades (no método), use la interfaz . Si usa la interfaz, puede "lanzar" simplemente usando:
this.customerservice.processCustomer(this.CustomerGroup.value as CustomerInterface);De lo contrario, necesita crear un objeto de la clase CustomerClass y pasar:
const customer=new CustomerClass(); customer.custNo=this.CustomerGroup.value.custNo; ... this.customerservice.processCustomer(customer);