2017-02-21 2 views
0

ich ngModel.$parsers.push bin mit der Benutzereingabe zu ändern:

ngModel.$parsers.push(function (value) { 
    //some logic here - changing the vaue 
    //set the new value   
    ngModel.$setViewValue(value); 
    // renders the input with the new viewValue 
    ngModel.$render(); 
    return ture; //in any case     
}); 

Es funktioniert gut, aber es macht das form Feld unvalid und zeigt form.invalid.parse darunter..

Ich habe versucht, die value oder nichts zurück, aber es funktioniert immer noch nicht. Irgendwelche Ideen?

Danke.

+0

warum ist die Idee für Parser Verwendung $, Validierung? –

+0

Bearbeiten Sie die Frage - um den Wert zu ändern, gibt es einen anderen Weg? –

+0

Wert des Modells ändern? einer Eingabe? –

Antwort

1

Von AngularDoc

von einem Parser undefined Rückholmittel ein Parse-Fehler aufgetreten ist. In diesem Fall werden keine $ validators ausgeführt und das ngModel wird auf undefined festgelegt, es sei denn, ngModelOptions.allowInvalid ist auf True festgelegt. Der Parse-Fehler wird in ngModel gespeichert. $ Error.parse.

So versuchen Sie dies in Ihrem Eingabefeld

<input ng-model-options="{ allowInvalid: true }" />