如果值在数组中,则AngularJS输入有效

如果值在数组中,则AngularJS输入有效,angularjs,validation,angular-validation,Angularjs,Validation,Angular Validation,有输入 <div ng-app="myApp" ng-controller="myCtrl"> <form> <input type="number" ng-model="$ctrl.myNumber" /> </form> </div> 因此,例如,如果用户在输入中键入“2”,它应该是有效的(因为数组possibleInputValues包含2),但对于值5来说应该是无效的 我在中发现的一种方法是为

有输入

<div ng-app="myApp" ng-controller="myCtrl">
    <form>
        <input type="number" ng-model="$ctrl.myNumber" />
    </form>
</div> 
因此,例如,如果用户在输入中键入“2”,它应该是有效的(因为数组
possibleInputValues
包含2),但对于值5来说应该是无效的

我在中发现的一种方法是为这种验证编写自己的指令。这是唯一的方法还是有更轻的方法

我要找的是这样的东西

<input type="number" ng-model="$ctrl.myNumber" valid-if="$ctrl.isInMyArray()"/>
检查其中包括哪些


此指令使创建自定义验证器表达式变得非常容易。在您的例子中,它可能看起来像
ui-validate=“{inArray:'isInMyArray($value)}”

看看其中包含的。它可能对您的自定义验证有很大帮助。angular-ui/ui-validate看起来正是我想要的。谢谢!很乐意帮忙!我会给你一个答案,因为它帮助了你。
<input type="number" ng-model="$ctrl.myNumber" valid-if="$ctrl.isInMyArray()"/>
app.controller('myCtrl', function($scope) {
    var self = this;
    self.possibleInputValues = [1, 2, 3, 4, 7, 8, 9, 10];
    self.isInMyArray = function(val) {
        if (self.possibleInputValues.indexOf(val) !== -1) {
            return true
        } 
        return false;
    }
});