2017-08-31 13 views
1

角度1.4ベースのアプリケーションで電話番号の検証にgoogle-libphonenumberを使用しようとしています。google-libphonenumberの角度1.4バージョン

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

その、私は私のノードサーバのコードでこれを行う場合に予想されるとして働いています。

しかし、私はクライアント側のバリデーションディレクティブでこの検証をしたいと思います。

クライアント側でこれを使用するために、私の指示にどのモジュールを挿入するかわかりません。私は "PhoneNumberUtil"、 "google-libphonenumber"を注入しようとしましたが、何も動作しません。

角度1.4の例がありますか?

おかげ

答えて

0

あなたが言及したライブラリは、あなたの指示に依存関係としてそれを注入することはできませんアンギュラモジュールではありませんので。あなたがそのようなディレクティブスクリプトでそれを必要とするか、またはインポートすることができますしかし

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; 

また多分それはあなたのために働くだろうhttps://github.com/cwill747/angular-libphonenumber

をチェックしてください。

関連する問題