问题在于chrome,我在表单中有很少的字段,并希望利用浏览器的自动完成功能。 Here我发现了chrome的问题(它仅在表单提交时保存数据),因此根据this question上接受的答案的建议,我尝试触发点击事件这反过来会激活同一元素上的 ngClick ,最终会进入一个循环。
那么如何在使用“ngClick”的同时使用自动完成功能呢?
答案 0 :(得分:2)
触发自动填充的最简洁方法是使用ngSubmit
。但是,如果您想使用ngClick
,则可以使用此https://stackoverflow.com/a/25102791之类的解决方案。您正在从控制器提交表单。触发本机提交函数需要通过指令应用,因为这是使用AngularJS操作DOM的推荐位置。
答案 1 :(得分:1)
我也在寻找这个并发现这篇文章所以我将分享我迄今为止用我自己的解决方案发现的内容,并希望它有所帮助:) 我还遇到了一个带有自动完成功能的无限循环,经过多次试验,我发现如果我以不同的方式调用我的函数,它就不会推动循环。
on-select="ctrl.updateAutoComplete"
我相信这对你的ngClick仍然有效(基本上我只是删除了这里的括号)
然后在我的控制器中而不是使用
public updateAutocomplete(query:string){// do stuff here}
我最终使用
public updateAutocomplete = function(query: string) { // do stuff here }
它看起来像是一种野蛮的方式绕过它,但到目前为止它对我有用。我发现它也掩盖了$ scope的范围,这就是为什么我在寻找更好的解决方案。但无论如何这就是我离开循环的方式,我希望它有所帮助。