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