当浏览器填充表单时,AngularJS没有绑定模型

AngularJS not binding model when browser fills the form

本文关键字:绑定 模型 AngularJS 浏览器 填充 表单      更新时间:2023-09-26

我们有一个带有电子邮件和密码字段的登录表单。

FF有保存用户名和密码的功能。

所以一旦我输入它,然后保存密码。

下次登录时,表单将由浏览器自动填写,不需要任何点击,绑定,更改或模糊事件。

所以当我提交这个正确填写的表单时,数据没有放在模型中,即$scope。

我必须在提交中编写查询代码以获取电子邮件和密码字段的值。

我们无论如何都可以避免使用jQuery来获取值吗?

我真正的问题是?

在一般情况下-我们在angular中是否有任何选项可以再次从dom中获取(刷新)值。

类似$scope.usr.email。Refresh或angular.refresh(usr.email.refresh)或

最好返回$scope.usr.email。Refresh = angle .get('.email')

而不是$scope.usr.email。刷新= $('.email').val();

我在使用复选框时也遇到过类似的问题,其中复选框状态使用一些表达式设置,但ng-model不直接接受状态或表达式。

使用下面的自动填充指令

app.directive("autofill", function () {
    return {
        require: "ngModel",
        link: function (scope, element, attrs, ngModel) {
            scope.$on("autofill:update", function() {
                ngModel.$setViewValue(element.val());
            });
        }
    }
});