Это мое рабочее решение для расширения раскрывающегося списка при фокусировке на компоненте combobox:
Директива:
import { Directive, HostListener, Input } from '@angular/core';
import { ComboBoxComponent } from '@progress/kendo-angular-dropdowns';
@Directive({
selector: 'kendo-combobox[openOnFocus]'
})
export class OpenOnFocusDirective {
@Input() openOnFocus: ComboBoxComponent;
@HostListener('focus') onFocus() {
this.openOnFocus.toggle(true);
}
@HostListener('blur') onBlur() {
this.openOnFocus.toggle(false);
}
}
Html:
<kendo-combobox #comboboxComponent [openOnFocus]="comboboxComponent" ...">
</kendo-combobox>
Использование собственного элемента дает мне не компонент, а элемент html. Вот почему переключатель не определен и не работает.
Использование viewchild также не является вариантом, поскольку сама директива не имеет дочернего элемента типа comboboxComponent.