Kendo下拉列表不执行ng-focus绑定功能

时间:2017-02-20 21:02:27

标签: angularjs drop-down-menu kendo-ui kendo-dropdown kendo-multiselect

我在模板上定义了此下拉列表

<select id="{{vm.field.id}}"
        kendo-drop-down-list
        k-data-source="vm.field.options"
        k-data-value-field="'code'"
        k-data-text-field="'description'"
        k-index="vm.selectedIndex"
        k-ng-model="vm.field.value"
        k-value-primitive="true"
        k-options="vm.field.config"
        ng-blur="vm.unfocusField()"
        ng-focus="vm.focusField()"
        k-on-change="vm.onValueChange()">
</select>

正如你所看到的,我有ng-focus设置(定位到vm.focusField()函数),当我通过用鼠标直接点击它来聚焦字段时,这个事件被正确应用并触发功能。但是当通过表格列表中的前一个字段的Tab键(选项卡键盘)来聚焦此字段时。当我按Tab键时,该字段变得“聚焦”,因为在html中,类'k-state-focused'被添加到元素中,我可以使用向上和向下光标按钮来更改下拉列表值,但是,ng-focus绑定函数没有执行。在恢复这个ng-focus单词通过点击聚焦,但不通过标签键盘执行聚焦。我证明在这种情况下,使用开发工具和绑定函数上的断点

不会调用此函数

1 个答案:

答案 0 :(得分:0)

我从telerik支持团队收到了这个代码示例,这有助于解决我的问题。

extension Sequence where Iterator.Element == [String: Equatable] {
    public func removeDoubles(byKey uniqueKey: String) -> [Iterator.Element] {
        var uniqueValues: [Iterator.Element.Value] = []
        var noDoubles: [Iterator.Element] = []
        for item in self {
            if let itemValue = item[uniqueKey] {
                if (uniqueValues.contains { element in
                    return itemValue == element
                }) {
                    uniqueValues.append(itemValue)
                    noDoubles.append(item)
                }
            }
        }
        return noDoubles
    }
}