Lors de la soumission d'un formulaire dans AngularJS et d'utiliser le navigateur de mémoriser le mot de passe de la fonctionnalité, et lors d'une tentative de connexion vous laisser le navigateur de remplir le formulaire de connexion avec le nom d'utilisateur et le mot de passe, l' $scope
modèle ne sera pas modifié sur la base de remplissage automatique.
La seule sale hack que j'ai trouvé est d'utiliser la directive suivante:
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);
}
};
}]);
Le problème est que l' ngModel.$setViewValue(element.val());
ne change pas le modèle ni la vue basée sur l' element.val()
la valeur retournée. Comment puis-je le réaliser?