Під час подання форми в AngularJS та використання браузера пам'ятайте про функціональність пароля, а при наступній спробі входу ви дозволяєте браузеру заповнити форму для входу з ім'ям користувача та паролем, $scope
модель не буде змінена на основі автозаповнення.
Єдиний брудний злом, який я знайшов, - це використання наступної директиви:
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);
}
};
}]);
Проблема полягає в тому, що ngModel.$setViewValue(element.val());
не змінюється ні модель, ні погляд на основі element.val()
повернутого значення. Як я можу це досягти?