Javascript 角度表单未检测到浏览器插入的文本

Javascript 角度表单未检测到浏览器插入的文本,javascript,angularjs,Javascript,Angularjs,请注意,在下图中,黄色背景的字段由Chrome自动填充(或者可能由Lastpass自动填充) 我在Angular中创建了一个登录小部件,它工作得很好。但我遇到的一个问题是,如果我将电子邮件文本字段定义为: <input type="email" ng-model='user.email' name="email" required> 如果我使用如下所示的浏览器插入值提交,我将得到一个form.email.$error.required error。此外,除非我修改默认文本,否则

请注意,在下图中,黄色背景的字段由Chrome自动填充(或者可能由Lastpass自动填充)

我在Angular中创建了一个登录小部件,它工作得很好。但我遇到的一个问题是,如果我将电子邮件文本字段定义为:

<input type="email" ng-model='user.email' name="email" required>

如果我使用如下所示的浏览器插入值提交,我将得到一个form.email.$error.required error。此外,除非我修改默认文本,否则用户对象将没有电子邮件的值

我可以手动在DOM中搜索输入的值,但这不是解决这个问题的一个很有角度的方法。我的另一个选择是创建自己的输入指令,通过检查DOM上是否有值来初始化输入。但我想知道是否有更快的解决办法


也许我不理解您的问题,但这不只是使用$scope.$apply(),提交函数的第一件事吗


$scope.$apply()

也许我不理解您的问题,但这不只是使用$scope.$apply(),提交函数的第一件事吗


$scope.$apply()

你说的“浏览器插入值”是什么意思?@MikeRobinson我认为OP是指浏览器的自动完成功能。这是因为角度模型仅在“输入”事件时更新,并且当浏览器的自动完成脚本填充字段时,不会触发此事件。请查看以下答案:。基本上,您应该能够通过对每个字段应用自定义指令并在$timeout内触发
input
事件来处理此问题。您所说的“浏览器插入值”是什么意思?@MikeRobinson我认为OP是指浏览器的自动完成功能。这是因为角度模型仅在“input”时更新事件,并且当浏览器的自动完成脚本填充字段时,不会触发此事件。请查看以下答案:。基本上,您应该能够通过对每个字段应用自定义指令并在$timeout内触发
input
事件来处理此问题。