2017-08-31 2 views
1

J'essaie d'utiliser google-libphonenumber pour la validation du numéro de téléphone dans mon application angulaire 1.4.Angular version 1.4 de google-libphonenumber

https://github.com/ruimarinho/google-libphonenumber

Son fonctionne comme prévu si je le fais dans mon code de serveur de nœud. Mais, j'aimerais avoir cette validation dans ma directive de validation côté client.

Je ne sais pas quel module injecter dans ma directive afin de l'utiliser du côté client. J'ai essayé d'injecter "PhoneNumberUtil", "google-libphonenumber", rien ne fonctionne.

Existe-t-il un exemple 1.4 angulaire pour cela?

Merci

Répondre

0

Depuis la bibliothèque que vous avez mentionné n'est pas un module angulaire vous ne pouvez pas injecter comme une dépendance dans votre directive.

Cependant, vous pouvez exiger ou l'importer dans le script de directive comme:

const PhoneNumber = require('google-libphonenumber').PhoneNumberUtil.getInstance(); 

const PhoneNumberDirective = function ($log) { 
    'ngInject'; 

    return { 
     restrict: 'A', 
     require: '?ngModel', 
     scope: { 
      countryCode: '=', 
      nonFormatted: '=?', 
     }, 
     link(scope, element, attrs, ctrl) { 
      function validator(value) { 
       let isValidForRegion = false; 
       try { 
        const number = PhoneNumber.parse(value, scope.countryCode); 
        isValidForRegion = PhoneNumber.isPossibleNumber(number); 
       } catch (err) { 
        $log.debug(err); 
       } 
       const valid = ctrl.$isEmpty(value) || isValidForRegion; 
       ctrl.$setValidity('phoneNumber', valid); 
       return value; 
      } 

      ctrl.$formatters.push(validator); 
      ctrl.$parsers.push(validator); 
     }, 
    }; 
}; 

export default PhoneNumberDirective; 

Consultez également https://github.com/cwill747/angular-libphonenumber

peut-être cela fonctionnera pour vous.