我有一个通过rails helpers生成的表单,上面有一些AngularJS。
= form_for some_models do |f|
%fieldset.form-horizontal
%div.some-class
#And so on and so forth
=f.submit
等等。 在这种形式中,我有各种角度指令和控制器相互嵌套。其中一个指令是监听字段并比较其值以进行一些自定义角度验证,如下所示:
ctrl.$setValidity("decisionRuleCodeActivated", scope.valid).
这会在表单和相关字段上正确设置ng-invalid / ng-valid,但表单提交仍然可以没有问题。
虽然我理解阻止此行为的“正确”方法是引入一个ngSubmit,它进行验证,然后联系到一个Angular Service,它序列化为JSON并发布到相关端点,这将需要重写一个真正淫秽的代码。
因此我的问题是:
如何在不这样做的情况下阻止表单提交?
谢谢!
答案 0 :(得分:0)
我的解决方案:
if scope.valid is true
angular.element("form.ng-valid").find("input:submit").click(->
true
)
else
angular.element("form.ng-invalid.ng-dirty").find("input:submit").click(->
false
)
上面的代码在一个手表触发的方法中,就在指令中的$ setValidity之后