在我的应用程序中,我有一个具有此行为的表单:表单字段值在输入失去焦点或用户点击Enter后逐步上传到服务器。它是通过挂钩丢失焦点(自定义指令)和按键(ng-keydown
)事件来完成的。与此同时,我使用Angular-ui Bootstrap Typeahead控件进行城市查找(以及其他一些领域)。输入看起来像这样:
<input type="text" name="city"
ng-model="dispatcher.city"
ng-keydown="dispatcher.inputKeyPress($event)"
typeahead="obj.city as obj.city for obj in lookup('city', $viewValue)">
没有预先输入的输入工作正常,但是当涉及到城市输入时,它的工作方式如下:
我认为按键事件会产生两个动作:按字母顺序排列进程,同时ng-keydown
以其方式解释它。在我看来,无论是typeahead应该“消耗”事件而不是让它“进一步”,或者ng-keydown
回调应该知道是否显示了先行建议(以便它可以“跳过”某些事件)。
我玩过typeahead-on-select="onSelect($item, $model, $label)"
,但我无法以某种方式同步这两个回调(inputKeyPress
和onSelect
) - 按键似乎更快就会运行。
如何完成任何这些建议?或者其他任何事情都可以完全?
由于
除此之外,Typeahead是一个很好的控制。
答案 0 :(得分:0)
尝试删除你的keydown事件挂钩,对我而言,看起来你真的不需要它。您的逻辑应该在typeahead的选择事件和失去焦点时触发,您将在所有情况下跟踪值的变化。
希望这有帮助