使用ng-required vs required

时间:2013-10-07 17:00:58

标签: angularjs

我有以下多选框:

<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 = [];

如果Slide数组中有幻灯片,我希望表单的这个元素有效。这些是动态添加的 - 它是一种用户可以添加幻灯片的幻灯片。

但是我没有得到ngRequired的东西如何工作......如果我把它改成data-ng-required="true"那么我的表格看起来还不错,但当然它不能做我想要的。如果我使用form.Slides.length > 0检查我真正想要的东西,不仅这不起作用,而且它与我的表单结构混淆,我的一个元素似乎随机消失。

使用它的正确方法是什么?这个文档非常稀少。

1 个答案:

答案 0 :(得分:25)

看看这篇文章:

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()"

这可能不是最优雅的解决方案,但它有效。如果那不是您想要的,请告诉我。