我写这篇文章的目的是想知道在浏览器扩展中执行自动补全时,如何触发angularJS更新其模型。我知道其他一些应用程序(像LastPass这样的密码管理器)成功地做到了这一点。
我正在构建一个小的Safari扩展,它将帮助我自动完成Apple的(荒谬的) Sandbox用户创建表单,该表单有10个输入字段和几个选择器元素。
到目前为止,我已经设法使用jQuery获得了输入字段,并使用.val()设置了它们的值。但是,这不会触发angularJS更新其模型,因此即使输入字段中有文本,angular也会认为没有文本,因此无法验证表单。
如果我可以访问angular对象,这个问题可以很容易地解决,但我似乎无法做到这一点。当我尝试访问angular时,插入的脚本返回undefined。所以我在想,要么我检索的角度对象不正确,要么我应该用不同的方法来解决这个问题。
要注意的是,我已经尝试了网络上提到的其他一些技巧:input.trigger('input');和其他类似的东西。
发布于 2015-08-25 23:30:38
听起来你需要愚弄表单,让它认为你实际上已经在输入中输入了一些东西,而不是仅仅设置输入值,我不认为这会导致焦点事件。尝试使用JQuery聚焦,然后取消对输入的聚焦。这将模拟用户单击输入字段,然后离开输入字段的过程。如果Apple以正确的方式构建他们的表单,这应该会触发验证/模型更新。希望这能有所帮助。
https://stackoverflow.com/questions/32056775
复制相似问题