1

我有一个分为标签的表格。每个选项卡都是ng-form主元素的子form元素。只有在其他子表单有效时,父表单才能提交。但是,因为我使用的是 ng-switch,所以它只检查当前选项卡是否有效。

这是小提琴http://jsfiddle.net/nicolasmoise/LRfrY/2/

我的方法正确吗?应该尝试替代 ng-switch 还是我可以在控制器/服务中拥有所有逻辑?

奖金

当父表单提交时,它应该打开第一个无效的 tab/ng-form 以便立即向用户显示错误。(例如,如果 tab1 和 tab2 有效,它将跳转到 tab3 并在那里显示错误。

4

1 回答 1

1

ng-switch不会隐藏,它会在 DOM 中添加/删除匹配的元素。这样,DOM 就无法访问已删除的字段,因此验证无法对隐藏元素起作用。

您可以通过检查所有模型是否具有值来处理控制器上的验证,或者您可以只显示/隐藏元素而不是添加/删除它们。

因此,删除元素上的ng-switchand 使用ng-show="tab==1"and 。ng-show="tab==2"ng-form

演示在http://jsfiddle.net/gaby/LRfrY/4/

于 2014-01-30T22:33:31.303 回答