2013-01-10 27 views
0

我有一个通过rails helper生成的表单,它有一些AngularJS。防止在ng无效的rails表单提交

= 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-无效/ NG-有效的形式和正确的相关领域,但是形式提交仍然可以没有问题地发生。

虽然我明白阻止这种行为的“正确”方法是引入一个ngSubmit,它进行验证,然后触及一个Angular Service,它将序列化为JSON并发布到相关端点,这需要重写一个真正淫秽的代码量。

因此我的问题:

我怎样才能阻止提交,没有这样的形式?

谢谢!

回答

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后