2014-02-14 35 views
0

我有一個簡單的表單,我必須驗證ajax調用上的許多輸入字段。如何使表單提交等待驗證完成角js

許多輸入字段都是可重用的,所以我使用了它們的指令。

<input name="UserName" 
     type="text" 
     user-name-unique 
     ng-model="UserName" 
     required 
/> 

指令功能:

elem.on('blur', function(evt) { 
    scope.$apply(function() { 
    var data = { 'username': elem.val() }; 
    var ajaxConfiguration = { method: 'POST', url: 'url', data: data }; 
    async(ajaxConfiguration).success(function(data, status, headers, config) { 
     ctrl.$setValidity('userNameUnique', !data.IsSuccess); 
    }); 
    }); 
}); 

同樣我有許多指令這驗證使用AJAX調用的輸入。

如何讓我的提交功能等待我的所有ajax請求完成?

回答

1

創建指令,你的提交按鈕可以跟蹤,然後就打你的提交按鈕,將只有一次您的自定義指令字段更新disabled指令被評估爲true:

<input name="UserName" 
     type="text" 
     user-name-unique 
     ng-model="UserName" 
     required 
     validate="process()" //retun true/false, processed whenever value changes 
/> 


<form> 
    <button type="submit" disabled>Submit</button> 
</form> 

然後創建一個監聽器當輸入更新,並檢查它的驗證狀態