2015-04-02 23 views
2

我正在使用ui-select,並希望在用戶從輸入中單擊時(即ui-select-search上的模糊事件)選擇列表中的第一個選項。目前,選擇框保持打開狀態,直到用戶列出或做出選擇。Angular ui-select在模糊上選擇

+0

爲了進一步討論,我嘗試在本頁上由tonyh發佈的指令中包裝元素: https://github.com/angular-ui/ui-select/issues/432#issuecomment-65490071 返回的事件似乎與通常被認爲是模糊/焦點事件的事件相對應。 – Csizzle 2015-04-02 20:08:21

+0

查看將函數綁定到與select相關聯的.ui-select-search文本框,以便當它變模糊時,將選擇第一個項目(它始終與用戶輸入相匹配,因爲它是作爲第一個元素創建的從刷新函數返回的數組)。在引擎蓋下搜索api,然後選擇第一個項目。 – Csizzle 2015-04-06 19:03:54

+0

看看這個解決方案,它爲我工作! [https://stackoverflow.com/a/45990035/3040886](https://stackoverflow.com/a/45990035/3040886) – 2017-08-31 21:09:50

回答

5

您可以添加其他指令到用戶界面,選擇元素,像這樣:

<ui-select select-on-blur ... 

然後,像這樣實現的:(的「如果」從_handleDropDownSelection方法複製)

.directive('selectOnBlur', function() { 
    return { 
     require: 'uiSelect', 
     link: function(scope, elm, attrs, ctrl) { 
      elm.on('blur', 'input.ui-select-search', function(e) { 
       if(ctrl.open && (ctrl.tagging.isActivated || ctrl.activeIndex >= 0)){ 
        ctrl.select(ctrl.items[ctrl.activeIndex]); 
       } 
       e.target.value = ''; 
      }); 
     } 
    }; 
}) 

(注意:這隻適用於jquery,如果沒有jquery,你需要以不同的方式選擇輸入)