簡體   English   中英

Angular-UI Bootstrap Typeahead控制和ng-keydown

[英]Angular-ui Bootstrap Typeahead control and ng-keydown

在我的應用程序中,我有一個具有以下行為的表單:輸入失去焦點或用戶按下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)">

沒有預先輸入的輸入就可以正常工作,但是當涉及到城市輸入時,它的工作方式如下:

  1. 用戶開始輸入城市,例如Lon
  2. 提前輸入會彈出帶有建議的彈出窗口
  3. 用戶選擇倫敦並按Enter
  4. 預先輸入用倫敦填充輸入,但不久之后,輸入值更改為Lon a,這是發送到服務器的值。

我想keypress事件會導致兩個動作:鍵入處理其方式,同時ng-keydown解釋其方式。 在我看來,要么提前輸入應該“使用”該事件,而不是讓它“繼續進行”,或者ng-keydown回調應該知道是否顯示了提前輸入建議(以便它可以“跳過”某些事件) 。

我玩過typeahead-on-select="onSelect($item, $model, $label)"但是我無法以某種方式同步這兩個回調( inputKeyPressonSelect )–按鍵似乎運行得更快。

任何建議如何完成這些? 也許還有其他任何事情?

謝謝

除此之外,Typeahead是一個出色的控件。

嘗試完全刪除您的keydown事件掛鈎,對我來說,您似乎並不需要它。 您的邏輯應該在提前選擇事件和失去焦點時觸發,您將在所有情況下跟蹤價值變化。

希望這可以幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM