вы можете связать errorMessage
для своей пользовательской проверки и использовать непосредственно в своем HTML через @ rxweb / реактивные-формы-валидаторы, вам нужно объявить свою пользовательскую проверку в пользовательских валидаторах, как это:
addressNumber:['',RxwebValidators.compose({validators:[this.uniqueNumberValidation()]})]
Согласно этому примеру, если вы добавите 1
в addressNumber, будет отображено сообщение об ошибке.
Компонент ТС:
import { Component, OnInit, } from '@angular/core';
import { FormGroup,AbstractControl } from "@angular/forms"
import { RxFormBuilder,RxwebValidators } from '@rxweb/reactive-form-validators';
@Component({
selector: 'app-compose-validators',
templateUrl: './compose-validators.component.html'
})
export class ComposeValidatorsComponent implements OnInit {
userFormGroup: FormGroup
constructor(
private formBuilder: RxFormBuilder ) { }
ngOnInit() {
this.userFormGroup = this.formBuilder.group({
addressNumber:['',RxwebValidators.compose({validators:[this.uniqueNumberValidation()]})]
});
}
uniqueNumberValidation() {
return (control: AbstractControl) => {
if (control.value != 1)
return null;
else
return {
'addressNumber': { message: "Address Number Should be Unique" }
};
}
}
}
<div>
<form [formGroup]="userFormGroup">
<div class="form-group">
<label>Address Number</label>
<input type="text" formControlName="addressNumber" class="form-control" />
<small class="form-text text-danger" *ngIf="userFormGroup.controls.addressNumber.errors">{{userFormGroup.controls.addressNumber.errorMessage}}<br /></small>
</div>
<button [disabled]="!userFormGroup.valid" class="btn btn-primary">Submit</button>
</form>
</div>
Пример Stackblitz