2
我正在使用angularJS,我試圖做一個窗體,其中用戶鍵入他的用戶名和應用程序驗證,如果它是可用的數據庫和他的長度是5/10字符之間。Ng-minlength不能與自定義驗證
<input type="text" name="uname" ng-model="user.uname"
ng-minlength="5" ng-maxlength="10" uniqueusername required/>
Uniqueusername是,檢查是否用戶名可用一個指令:
app.directive('uniqueusername', function($http){
return{
require : 'ngModel',
restrict : 'A',
link : function(scope,elem,attrs,ctrl){
ctrl.$parsers.unshift(function(value) {
$http.get('/api/check'+value).success(function(data,status){
if(data.available=='true'){
ctrl.$setValidity('unique',true);
}
else{
ctrl.$setValidity('unique',false);
.........................................................................
當i型具有小於5個字符的用戶名,是有效的。這不應該發生。 如果我刪除uniqueusername輸入它完美的工作。
感謝您的回答。
你可以發佈完整的uniqueusername指令? – 2014-09-26 14:30:34
您正在使用哪個版本的Angular? Angular JS 1.3具有支持服務器異步驗證的新功能。您的問題很可能是常規驗證代碼不會等待您的.success回調發生。 – 2014-09-26 15:16:23
@SunilD。我使用1.2.23,我會嘗試更改爲1.3。 – user3632000 2014-09-26 15:59:57