我使用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?
答案 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
的唯一选择(至少现在)。