Wenn Sie ein Formular in AngularJS senden und die Browser-Funktion $scope
zum Speichern des Kennworts verwenden und bei einem nachfolgenden Anmeldeversuch den Browser das Anmeldeformular mit dem Benutzernamen und dem Kennwort ausfüllen lassen, wird das Modell nicht basierend auf dem automatischen Ausfüllen geändert.
Der einzige schmutzige Hack, den ich gefunden habe, ist die Verwendung der folgenden Anweisung:
app.directive("xsInputSync", ["$timeout" , function($timeout) {
return {
restrict : "A",
require: "?ngModel",
link : function(scope, element, attrs, ngModel) {
$timeout(function() {
if (ngModel.$viewValue && ngModel.$viewValue !== element.val()) {
scope.apply(function() {
ngModel.$setViewValue(element.val());
});
}
console.log(scope);
console.log(ngModel.$name);
console.log(scope[ngModel.$name]);
}, 3000);
}
};
}]);
Das Problem ist, dass ngModel.$setViewValue(element.val());
weder das Modell noch die Ansicht basierend auf dem element.val()
zurückgegebenen Wert geändert werden. Wie kann ich das erreichen?