angular2-forms - 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 并创建了它,但我想知道它是最好的方法还是为此目的使用自定义指令
解决方案
当然,在自定义指令中执行它会更优雅,特别是如果您要多次使用它或者如果您想保持组件小。该指令应该受到愤怒并进行评估。
推荐阅读
- sql - 如何获取一年中的第一天sql查询oracle
- movilizer - 如何替换 MovilizerMasterdataUpdate 条目值 url 值
- typescript - 打字稿:基于兄弟对象键的值的强类型(和自动完成)
- javascript - 输入一个字符串得到两个输出
- javascript - 数组不是在 react-native 中复制的
- java - 在Java源代码中,为什么 ArrayList.add 有参数作为泛型类型 T 而 addAll 有参数作为泛型类型?
- javascript - 如果子字符串后有一个数字,则按该数字量重复该子字符串(javascript)
- javascript - 为什么 webpack-html-plugin 在使用模板时在头部而不是正文中添加脚本标签?
- python - 如何使用另一个函数停止 discord.py 中的 on_message()?
- c++ - 如何在OpenGL中围绕屏幕中心旋转