Solución de autocompletar del navegador AngularJS mediante el uso de una directiva
Al enviar un formulario en AngularJS y usar la funcionalidad de recordar contraseña del navegador, y en un intento posterior de inicio de sesión, permite que el navegador complete el formulario de inicio de sesión con el nombre de usuario y la contraseña,$scope
El modelo no se cambiará en función del autocompletado.
El único truco sucio que encontré es usar la siguiente directiva:
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);
}
};
}]);
El problema es que langModel.$setViewValue(element.val());
No cambia el modelo ni la vista basada en elelement.val()
valor devuelto. ¿Cómo puedo lograr eso?