Khi gửi biểu mẫu trong AngularJS và sử dụng chức năng ghi nhớ mật khẩu của trình duyệt, và trong lần đăng nhập tiếp theo, bạn để trình duyệt điền vào biểu mẫu đăng nhập bằng tên người dùng và mật khẩu, $scope
mô hình sẽ không bị thay đổi dựa trên tự động điền.
Cách hack bẩn duy nhất mà tôi tìm thấy là sử dụng lệnh sau:
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);
}
};
}]);
Vấn đề là ngModel.$setViewValue(element.val());
không thay đổi mô hình cũng như chế độ xem dựa trên element.val()
giá trị trả về. Làm thế nào tôi có thể thực hiện điều đó?