[英]$filter failure after Angular 1.4 upgrade (UI-Bootstrap typeahead)
[英]Angular UI-Bootstrap Typeahead: Accept top item as selected on ENTER
這是一個簡單的問題,但是當按ENTER鍵時,是否有辦法使下拉結果中的第一項成為所選項?
例如,用戶在“ PC0”中鍵入,並看到“ PC001”列為第一個選項,當按ENTER鍵時,我們可以讓它在“預選類型”選項上使用“ PC001”嗎?
我目前正在使用typeahead-on-select
來運行一個函數,該函數通過id調用輸入並獲取要在函數中使用的Value。 似乎使用輸入到文本框中的內容而不是在ENTER或Click上選擇的值。
HTML:
<input id="applicationComboBox"
type="text"
ng-model="applicationComboBox"
uib-typeahead="a as a.Value for a in applicationList | filter:$viewValue"
typeahead-on-select="getApplication()"
class="form-control">
用於 getApplicationValue()
JS 看起來像這樣:
$scope.getApplication = function () {
$scope.ApplicationValue = applicationComboBox.value;
}
問題是applicationComboBox.value是用戶在單擊/輸入時分別鍵入的文本而不是單擊/突出顯示的值。 因此,在前面的示例中,“ PC0”將是值,而不是“ PC001”。
當用戶選擇/按下輸入時,ng-model applicationCombox
會自動更新。 如果要在選擇后更新另一個值$scope.ApplicationValue
,請執行以下操作
$scope.applicationCombox = ""; //your existing model.
$scope.getApplication = function () {
$scope.ApplicationValue = $scope.applicationCombox;
}
讓我們知道
我能夠找到對我有用的解決方案。
HTML:
<input id="applicationComboBox"
type="text"
ng-model="applicationComboBox"
uib-typeahead="a as a.Value for a in applicationList | filter:$viewValue"
typeahead-on-select="onApplicationSelect($item, $model, $label, a)"
class="form-control">
JS:
$scope.onApplicationSelect = function (item, model, label, application) {
applicationComboBox.value= item.Value;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.