Ich habe ein Formular, wo ich versuche, sicherzustellen, dass Groß-und Kleinschreibung keine Probleme mit einer E-Mail-Validierung ist. Ich habe eine Winkelvalidierung genannt mustMatch
, die genau das tut, was es angibt, es stellt sicher, dass die E-Mails den Index für den Index übereinstimmen. Allerdings muss ich auch sicherstellen, dass dieser Fall kein Problem darstellt. Also habe ich am Ende eine zweite Funktion mit dem Namen matchCaseInsensitivity
erstellt und am Ende habe ich ein Problem, weil ich entschieden habe, dass der beste Weg, dies zu beheben, darin bestünde, den Filter tolowerCase()
hinzuzufügen. Als ich das tat, war ich in der Lage, meine eckigen mustMatch-Fehlermeldungen zu umgehen (was gut ist), aber wenn ich eine Submit auf dem Formular treffen würde, würde ich dann ein Javascript-Problem in diesem 'tolowerCase()' is undefined
stoßen.Funktion in Validator, nicht Controller gibt mir eine undefiniert bei "lowerCase()"
Ich denke, dass der Grund, warum ich diesen Fehler bekomme, ist, weil ich diese in eine Validator-Datei eingebaut habe, nicht einen Controller. (nicht sicher, ob das etwas ist)
Mein Frontend sieht so aus. Beachten Sie die 'match-case-insensitive' => true
als meine Build für die Lösung
%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
Meine mustMatch Validierung Fehlermeldung
if attr.mustMatch then addValidation 'mustMatch', 'This field must match the previous value.'
Die eigentliche Funktion, die die mustMatch Fehlermeldung auslöst, ich habe es auch mit dem "match-case-insensitive'
gebündelt, dass ich beziehen sich auf das Frontend. Dies ist auch in einer Validierungsdatei, nicht der Controller. (Was das wert ist .... ich weiß nicht). (Wohlgemerkt, ist es in Coffeescript)
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
ich weiterhin diese TypeError: Cannot read property 'toLowerCase' of undefined at r.$validators.mustMatch
zu bekommen. Ich bin seit über 2 Tagen daran fest und weiß ehrlich nicht, wie ich es lösen soll. Ich wäre wirklich dankbar, wenn jemand einen Blick darauf werfen könnte, was er tun kann.