Angularjs 角度形式验证-最小元素可以';不能大于最大元素

Angularjs 角度形式验证-最小元素可以';不能大于最大元素,angularjs,Angularjs,我在我的输入范围内有一些简单的验证,如下所示: <form name="form" novalidate> Min: <input type="number" name="min" ng-model="rangemin" ng-pattern="/^[0-9]+$/"> Max: <input type="number" name="max" ng-model="rangemax" ng-pattern="/^[0-9]+$/">

我在我的输入范围内有一些简单的验证,如下所示:

    <form name="form" novalidate>
    Min: <input type="number" name="min" ng-model="rangemin" ng-pattern="/^[0-9]+$/">
    Max: <input type="number" name="max" ng-model="rangemax" ng-pattern="/^[0-9]+$/">
    </form>

最小值:
最大值:
我在CSS中添加了类
ng valid
(绿色)和
ng invalid
(红色),以便正确绘制,并将输入保存在
ng model
变量中。这很好,但我想做一些额外的验证。如果最小值大于最大值或最大值小于最小值,则输入应无效

我怎样才能做到这一点


我是Angular的新手,我可以制作指令、控制器等,但我不知道如何验证这两个输入并设置它们的无效状态

您可以手动为
$error
对象编写内容。您可以编写自己的自定义验证(可能通过使用指令),并将验证附加到控制器的
$validators
属性(如给定的客户验证示例)

您只需在HTML中使用此指令,就像

<form name="form" novalidate>
Min: <input type="number" name="min" ng-model="rangemin" custom-validation ng-pattern="/^[0-9]+$/">
Max: <input type="number" name="max" ng-model="rangemax" custom-validation ng-pattern="/^[0-9]+$/">
</form>

我认为这是一个好办法

但是您需要使用这些指令

app.directive('ngMin', function () {
app.directive('ngMax', function () {

您可以使用html属性min和max以及字段中的模型值,如下所示:

<form name="form" novalidate>
Min: <input type="number" name="min" ng-model="rangemin" ng-pattern="/^[0-9]+$/" max="{{rangemax || 9999}}">
Max: <input type="number" name="max" ng-model="rangemax" ng-pattern="/^[0-9]+$/" min="{{rangemin || 1}}">
</form>

最小值:
最大值:
然后,显示错误消息的条件可以是:(form.min.$error.max | form.max.$error.min)&(form.min.$dirty | form.max.$dirty)

app.directive('ngMin', function () {
app.directive('ngMax', function () {
<form name="form" novalidate>
Min: <input type="number" name="min" ng-model="rangemin" ng-pattern="/^[0-9]+$/" max="{{rangemax || 9999}}">
Max: <input type="number" name="max" ng-model="rangemax" ng-pattern="/^[0-9]+$/" min="{{rangemin || 1}}">
</form>