Tengo un grupo de control anidado dentro de mi formulario y quiero acceder a su valor de estado de formulario (como prístino y válido) para mostrar los errores de validación de forma dinámica.
El está construido dinámicamente así
controlMap['password'] = this.password; controlMap['customData'] = this.formBuilder.group(customDataControlMap); this.form = new FormGroup(controlMap)el de obj es como
{ controls:{ password:{} --->nested customData:{ controls:{ customerId:{} } } } }el ngClass en la plantilla se ve bastante feo
[ngClass]="( !form.controls.customData.controls.customerId.valid && !form.controls.customData.controls.customerId.touched && submitted) ? 'invalid' : ''"y no funcionará cuando intente compilarlo (ng build --prod)
ERROR en ng:///Users/hanche/Desktop/Development/selfbits/beratergruppe-leistungen-webclient/src/app/pages/clients/client-new/client-new.component.html (6,61): Propiedad 'controles' no existe en el tipo 'AbstractControl'.
prueba esto
form.get('customData').get('customerId')?.invalido
form.get('customData.customerId')¿Hay alguna manera de evitar las llamadas a funciones en la plantilla?
usando captador
class YourComponent { get dataCustomerId() { return this.form.get('customData.customerId'); } }modelo:
[ngClass]="dataCustomerId?.invalid"formas angulares: acceso a controles anidados en la plantilla