2013-01-10 51 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後