我有以下多选框:
<select multiple="multiple" data-ng-model="rightSelected" data-ng-options="slide as slide.SlideBarcode for slide in form.Slides" data-ng-required="form.Slides.length > 0" />
在我的控制器我在初始化时这样做:
$scope.form.Slides = [];
如果幻灯片阵列中有幻灯片,我希望该表单的元素有效。这些是动态添加的 – 它是一种幻灯片桶,用户可以添加幻灯片。
但是我没有得到ngrequired的东西如何工作…如果我将其更改为data-ng-required =“true”,那么我的表单看起来不错,但当然不会做我想要的。如果我使用form.Slides.length> 0正在检查我真正想要什么,不仅这不工作,但它混淆了我的表单结构,我的一个元素似乎随机消失。
看看这篇文章:
Angular – what is the difference between required and ng-required
从我认为你想做的,我认为你使用ng-required属性是错误的。 ng-required属性用于当您有条件地需要输入时。我猜你在你的情况下总是希望这个输入被要求。
$scope.isFormValid= function(){ if (form.Slides.length > 0 && myForm.$valid) return true; }
接着
ng-disabled="isFormValid()"
这可能不是最优雅的解决方案,但它的作品。让我知道,如果这不是你想要的。