我正在以Angular应用程序的形式使用单独的控件验证器,它们完美地工作。现在,我想添加一个验证器来检查控件的值是否小于其他控件,我读到我必须将验证器应用于控件的父级(FormGroup本身)。
所以,我做了一些你可以在下面的stackblitz中看到的测试:
https://stackblitz.com/edit/angular-mts2gq
我确信sourcePortsValidator
和destPortsValidator
出了问题,因为它们没有按预期工作。例如,看一下这个截图:
控制台:
它表示start
为20,end
为120,比较start>end
为true
。有点奇怪,不是吗?定义这些验证器的正确方法是什么?
提前致谢,
答案 0 :(得分:1)
简短回答:
在HTML中,将源端口开始和源端口输入框的类型更改为number
。< / p>
答案很长:
text
类型的输入将其值返回为string
,因此start > end
实际上将端口号比较为string
(按字典顺序排列)。请参阅Why is one string greater than the other when comparing strings in JavaScript?。