私は、電子メールの検証で大文字と小文字の区別が問題にならないようにするためのフォームを用意しています。私はmustMatch
と呼ばれる角度検証をしています。それは、電子メールがインデックスのインデックスと一致することを確認します。しかし、私も大文字小文字は問題ではないことを確認する必要があります。だから、私はmatchCaseInsensitivity
と呼ばれる二次的な機能を作り上げてしまいました。最終的には、これを解決する最良の方法をtolowerCase()
フィルタを追加することで決めるため、問題が発生しています。私がこれをしたとき、私は角度付きのmustMatchエラーメッセージ(これは良い)をバイパスすることができましたが、フォーム上でsubmitを押すと、'tolowerCase()' is undefined
のjavascriptの問題に遭遇しました。validatorの関数で、コントローラが 'lowerCase()'で定義されていません
私はこのエラーが発生する理由は、これらがコントローラではなくバリデータファイルに組み込まれているためだと思います。 (それが何でもわからない場合)
私のフロントエンドはこのように見えます。 'match-case-insensitive' => true
マイmustMatchの検証エラーメッセージが
if attr.mustMatch then addValidation 'mustMatch', 'This field must match the previous value.'
mustMatchエラーメッセージをトリガーする実際の関数である、私もそれがI 'match-case-insensitive'
にバンドルされているソリューションのための私のビルド
%input-md{ type: "email", "ng-model" => "vm.form.email_confirmation", required: true, 'must-match' => 'register_form["vm-form-email"]', 'match-case-insensitive' => true, 'ng-hide' => 'vm.form.validated_email', autocapitalize: 'off' }
Confirm email address
ように注意してくださいフロントエンドを参照してください。これはコントローラではなく、検証ファイル内にもあります。 (それは価値があるもののために....私は分からない)。私はこのTypeError: Cannot read property 'toLowerCase' of undefined at r.$validators.mustMatch
を取得し続ける
getMatchValue = ->
match = matchGetter($scope)
if (angular.isObject(match) and match.hasOwnProperty('$viewValue'))
match = match.$viewValue
match
$scope.$watch getMatchValue, ->
ctrl.$$parseAndValidate()
return
ctrl.$validators.mustMatch = ->
match = getMatchValue()
if $attrs.matchCaseInsensitive
ctrl.$viewValue.toLowerCase() is match.toLowerCase()
else
ctrl.$viewValue is match
return
(あなたの心は、それはCoffeeScriptのです)。私は2日間以上これに固執しており、それを解決する方法はまったく考えていません。誰かが見て、彼らができることを見ることができれば、本当に感謝しています。