【问题标题】:Trigger autocomplete with ngClick without submitting the form在不提交表单的情况下使用 ngClick 触发自动完成
【发布时间】:2015-05-21 03:09:45
【问题描述】:

问题出在 chrome 中,我的表单中的字段很少,并且想利用浏览器的自动完成功能。 Here 我发现了 chrome 的问题(它只在提交表单时保存数据),因此正如this question 上接受的答案所建议的那样,我试图触发 click 事件,该事件又会触发同一元素上的 ngClick 最终会进入循环。

那么如何在使用“ngClick”的同时使用自动完成功能呢?

【问题讨论】:

标签: javascript angularjs forms autocomplete


【解决方案1】:

我也在寻找这个并且偶然发现了这篇文章,所以我将用我自己的解决方案分享我迄今为止发现的内容,希望它有所帮助:) 我的自动完成功能也遇到了无限循环,经过多次试验,我发现如果我以不同的方式调用我的函数,它不会推动循环。

on-select="ctrl.updateAutoComplete"

我相信这仍然适用于您的 ngClick(基本上我只是在这里删除了括号)

然后在我的控制器中而不是使用

public updateAutocomplete(query: string) {//在这里做事}

我最终使用了

public updateAutocomplete = function(query: string) { // do stuff here }

这似乎是一种绕过它的野蛮方式,但到目前为止它对我有用。我发现它也使 $scope 有点模糊,这就是为什么我正在寻找更好的解决方案。但无论如何,这就是我摆脱循环的方式,我希望它有所帮助。

【讨论】:

    【解决方案2】:

    触发自动完成的最简单方法是使用ngSubmit。但是,当您想使用ngClick 时,像https://stackoverflow.com/a/25102791 这样的解决方案会起作用。您正在从控制器提交表单。触发本机提交功能需要通过指令应用,因为这是使用 AngularJS 操作 DOM 的推荐位置。

    【讨论】:

      猜你喜欢
      • 2013-03-05
      • 2021-06-30
      • 2012-04-18
      • 2011-10-23
      • 2019-09-19
      • 2014-05-11
      • 1970-01-01
      • 2014-05-15
      相关资源
      最近更新 更多