【问题标题】:Angular ui-select choose on blurAngular ui-select 选择模糊
【发布时间】:2015-08-14 03:24:45
【问题描述】:

我正在使用 ui-select,并希望在用户点击离开输入时选择列表中的第一个选项(即 ui-select-search 上的模糊事件)。目前,选择框保持打开状态,直到用户退出或做出选择。

【问题讨论】:

  • 为了进一步讨论,我尝试将元素包装在 tonyh 在此页面上发布的指令中:github.com/angular-ui/ui-select/issues/… 返回的事件似乎与通常被认为是模糊/焦点事件不对应.
  • 着眼于将函数绑定到与选择关联的 .ui-select-search 文本框,这样当它模糊时,将选择第一个项目(它将始终匹配用户输入,因为它被创建为从刷新函数返回的数组中的第一个元素)。在后台搜索 api 以选择下一个项目。
  • 看看这个解决方案,它对我有用! https://stackoverflow.com/a/45990035/3040886

标签: angularjs blur ui-select


【解决方案1】:

您可以像这样向 ui-select 元素添加另一个指令:

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

然后像这样实现:('if' 是从 _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,则需要以不同的方式选择输入)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多