Angularjs 选择多个角度的最大长度

Angularjs 选择多个角度的最大长度,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我有一个角度选择多个字段,我想限制一个人可以选择的选项总数。这是一把小提琴: 其要点如下: <select size="10" id="myselection" ng-multiple="true" ng-model="selectedColors" ng-options="c.name+' ('+c.shade+')' for c in colors" ng-maxlength="2" required> </select> 表单从不计

我有一个角度选择多个字段,我想限制一个人可以选择的选项总数。这是一把小提琴:

其要点如下:

<select size="10" id="myselection"
    ng-multiple="true" ng-model="selectedColors" 
    ng-options="c.name+' ('+c.shade+')' for c in colors" ng-maxlength="2" 
    required>
</select>


表单从不计算有效性的长度,表单唯一无效的时间是在没有选择选项的情况下。我不确定maxlength是否“应该”与select一起工作,但如果不是,我如何扩展指令使其与select一起工作?

ng maxlength
用于输入长度,而
ng multiple
用于输入长度。您可以查看
selectedColors
数组的长度,并手动调用
$setValidity

$scope.$watch('selectedColors.length', function(length) {        
    var valid = length <= 2;
    $scope.form.colors.$setValidity("max2", valid);
});
$scope.$watch('selectedColors.length',函数(length){
var valid=长度
<form name="form">
<select name="colors" ... ></select>
<span ng-show="form.colors.$error.max2">Only select up to 2 colors.</span>