pageRangeValidator(control: FormControl) {
if (control.value === '') {
this.isValidRange = false;
}
if (control.value) {
const selectedRange = control.value;
const range = selectedRange.split('-');
const startingPageIndex = +range[0];
const endingPageIndex = +range[1];
const totalPages = this.totalPages;
if ((startingPageIndex > 0
&& startingPageIndex <= totalPages - 1
&& startingPageIndex < endingPageIndex
&& endingPageIndex > 0
&& endingPageIndex <= totalPages) || (startingPageIndex > 0
&& startingPageIndex <= totalPages
&& startingPageIndex === endingPageIndex
&& endingPageIndex > 0
&& endingPageIndex <= totalPages)) {
this.isValidRange = true;
this.pageRange.emit({
validRange: this.isValidRange,
preview: this.previewDone,
value: control.value
});
return null;
} else {
this.isValidRange = false;
this.pageRange.emit({
validRange: this.isValidRange,
preview: this.previewDone,
value: control.value
});
return false;
}
}
return null;
}
Я создаю элемент управления формой, который должен принимать значения только между определенным диапазоном. Я использовал responsetiveformsmodule и formcontrol и создал его, но я хочу знать, лучше ли это делать, или использовать для этого пользовательскую директиву