我在模板上定义了此下拉列表
<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单词通过点击聚焦,但不通过标签键盘执行聚焦。我证明在这种情况下,使用开发工具和绑定函数上的断点
不会调用此函数答案 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
}
}