Angular делегировать фокус на хост - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь реализовать поле со списком input и button. Стиль для фокуса должен сделать эти элементы похожими, поэтому я пытаюсь делегировать фокус хосту, но, похоже, он не работает.

Шаблон:

<input #input alloy class="alloy-combobox-input" [matAutocomplete]="auto" (input)="filterOptions($event.target.value)" >
<button #button alloy toolbar class="alloy-combobox-button" [alloyMenuTriggerFor]="menu">
  <alloy-icon icon="caret" orientation="down"></alloy-icon>
</button>

Фокус :

  ngOnInit(): void {
    this.focusMonitor.monitor(this.el);
    this.focusMonitor.monitor(this.button).pipe(takeUntil(this.ngUnsubsribe)).subscribe(origin => {
      this.focusMonitor.focusVia(this.el, origin);
    });
    this.focusMonitor.monitor(this.input).pipe(takeUntil(this.ngUnsubsribe)).subscribe(origin => {
      this.focusMonitor.focusVia(this.el, origin);
    });
  }

Я получу cdk-focus на input, когда щелкну по нему, но он не перенаправит фокус на хост компонента alloy-combobox.

Что было бы хорошим способом координировать фокусные эффекты input и button, чтобы они выглядели как один элемент?

...