Angular-UI UI-Select 停止将活动 class 应用于第一项的默认行为

Angular-UI UI-Select Stop default behaviour of applying active class to first item

最初显示选项时,第一项已应用活动 class。

对我来说,如果不切换搜索,这很有意义,尽管如果用户的目的是主要使用搜索功能,那么应用活动 class 似乎很笨拙——尤其是当您使用分组项目和将自定义样式应用于下拉内容。

仍然需要使用箭头键浏览项目的功能,但应该只在用户启动时出现。

似乎没有任何方法可以阻止此默认行为存在,我只是在寻找一种方法来使初始状态为无活动项目。

我有类似的需求,我只是将 $select.activeIndex = -1 设置为主要元素的焦点。这停止了​​在加载下拉列表时设置的活动 class 的默认行为

我能够使用父元素上的 uis-open-close 属性从下拉列表的第一项中删除活动的 class。

在模板中定义属性:

<ui-select theme="selectize" uis-open-close="$ctrl.setActiveIndex($select)">

然后在controller中设置activeIndex为-1:

setActiveIndex($select) {
    $timeout(() => {
        if($select.selected === undefined) {
            $select.activeIndex = -1;
        }
    }, 25);
}