使用ng-switch和ng-disabled

时间:2014-04-22 17:26:20

标签: javascript angularjs angularjs-directive

我使用ng-switch实现了一个包含3个选项卡的页面,它只有一个带有ng-disabled属性的常用“保存”按钮,所有这些都在一个表单中。

        <div id="tab1" ng-switch-default="basic">
        <div id="tab2" ng-switch-when="contact">
        <div id="tab3" ng-switch-when="password">

         <button class="btn btn-info" type="button" ng-click="save(entity)" ng-disabled="form.$invalid || form.$pristine">
            Save
         </button>

问题是ng-disabled仅在激活的选项卡上执行验证,我认为因为ng-switch 从dom中移除非活动选项卡而不仅仅是隐藏它。是否有针对ng-switch的解决方法,还是应该返回ng-hide和ng-show?

1 个答案:

答案 0 :(得分:2)

我看到的唯一解决方法是手动进行验证。 我认为您的表单绑定到某个模型,因此您可以让您的自定义验证功能直接观察模型。 ng-disabled可能类似于:

<button
    type="button"
    ng-click="save(entity)"
    ng-disabled="form.$invalid || form.$pristine || myCustomValidate(entity)">
    Save
</button>

这是我能想到的ng-hide / ng-show的唯一选择(至少现在)。