首页 > 解决方案 > FormControl 或自定义指令

问题描述

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;
}

我正在创建一个表单控件元素,它应该只接受特定范围之间的值我使用了 reactiveformsmodule 和 formcontrol 并创建了它,但我想知道它是最好的方法还是为此目的使用自定义指令

标签: angular2-forms

解决方案


当然,在自定义指令中执行它会更优雅,特别是如果您要多次使用它或者如果您想保持组件小。该指令应该受到愤怒并进行评估。


推荐阅读