2016-06-09 16 views
0

Ich habe eine Direktive gemacht, die Formularvalidierung verwendet, wenn die mobile nicht bereits im Dienst existiert, aber es zeigt Validierung für jede 10 Ziffer nicht, ob es existiert oder nicht. Bitte sagen Sie mir, wo ich bin falsch gehen hier ist mein Code.nicht möglich, Formularvalidierung mit den richtigen Werten

HTML

<div class="col-xs-8"> 
         <md-input-container> 
          <md-icon md-svg-icon="assets/images/device.svg"></md-icon> 
          <input type="number" placeholder="Enter user mobile no" name="mobile" id="mobile" ng-model="mobile" required minlength="10" ng-pattern="/^[789]\d{9}$/" phone-number-validator> 
           <div ng-messages="myForm.mobile.$error"> 
           <div ng-message="required">Registered mobile no.</div> 
            <div ng-message="phoneNumber">The mobile No entered has already been registered</div> 
           <div ng-message="test">too short</div> 
          </div> 
         </md-input-container> 
        </div> 

hier ist meine Richtlinie

angular.module('shoppingPad').directive('phoneNumberValidator',phoneNumberValidator) 


function phoneNumberValidator($q,loginServices){ 
    //var deferred=$q.defer(); 
    return{ 
     restrict:'EA', 
     require:'ngModel', 

     link:function($scope,element,attrs,ngModel){ 
      ngModel.$asyncValidators.phoneNumber=function(modelValue , viewValue) { 

       var mobile= (modelValue).toString(); 
       console.log(mobile); 
       console.log("abc"); 

        if(mobile.length == 10){ 

         return $q(function(resolve,reject){ 
          if(mobile==loginServices.getMobileNo.mobile1){ 
           resolve(); 

          } 
          else reject(); 
         }); 

       } 

      } 
     } 

hier meinen Dienst, von dem im, Übergabe von Daten

this.getMobileNo=function(){ 
     var mobile={ 
      mobile1:'8898246388', 
      mobile2:'8898302454', 
      mobile3:'8898454302' 
     } 
} 

Antwort

1

Ihr Code falsch in zwei Dinge: diese Methode getMobileNo muss zurückgeben o bject

this.getMobileNo=function(){ 
    return mobile={ 
     mobile1:'8898246388', 
     mobile2:'8898302454', 
     mobile3:'8898454302' 
    } 
} 

Dann zu Ihrem Dienst in anrufen, müssen () für den Aufruf einer Funktion: if(mobile==loginServices.getMobileNo().mobile1){

+0

wenn im mit(). es sagt Kann Property 'mobile1' von undefined nicht lesen – Anurag

+0

Ändern Sie auch Ihre Funktion. eine Arbeitsversion hier: https://plnkr.co/edit/e7Dwyg?p=info –

+0

welche Funktion nicht genau erhalten, weil ich den gleichen Anweisungscode in bonker auch sehe – Anurag

Verwandte Themen