Tengo un campo de entrada en mi formulario basado en plantilla angular. Quiero configurar esos campos para que solo puedan tomar un número de 11 bits como 01001111100
<input class="form-control" id="bitsValue" [placeholder]="field.templateOptions.placeholder" pattern="[0-1]{1}" [(ngModel)]="ABC" >¿Cómo puedo hacer eso?
Si tuviera que usar formularios reactivos, cree su formulario, por ejemplo:
this.myForm = this._sb.fb.group( { bitsValue: this._sb.fb.control('', [Validators.required, YourValidatorClass.elevenBitsOnly]) }; export class YourValidatorClass { static elevenBitsOnly(control: AbstractControl): ValidationErrors | null { const value = control.value; //... validate your value meets your 11 bit requirement return { bitValueReq: 'You must provide value as 11 bits number' }; //... if it doesn't meet the requirement return null return null; } }Luego en tu plantilla html:
<div [formGroup]="myForm"> <mat-form-field> <input matInput type="text" formControlName="bitsValue" /> <mat-error *ngIf="myForm.hasError('bitValueReq'))"> {{ getErrorMessage(myForm.get('bitsValue')) }}</mat-error> </mat-form-field> </div>....archivo componente.ts:
getErrorMessage(control: AbstractControl): string{ const error = control.getError('bitValueReq'); if(error){ return error['bitValueReq']; } }