Задать вопрос
@Drovosek01

Как добавить или пробросить событие focus() на кастомный дочерний компонент в Angular?

В проекте на Angular 11 есть кастомный компонент кнопки, например такой:
@Component({
  selector: 'ui-button',
  templateUrl: './button.component.html',
  styleUrls: ['./button.component.scss']
})
export class ButtonComponent extends ButtonBase {}


Этот компонент кнопки используется в других компонентах, например так:
<ng-template [ngIf]="alert">
  <ui-button #myButton>
  </ui-button>
</ng-template>


Проблема в том, что если я в родительском компоненте, беру эту кнопку
@ViewChild('myButton') private myCustomButton: ElementRef<HTMLElement>;

А потом пытаюсь сфокусироваться на ней this.myCustomButton.nativeElement.focus();
То в консоли появляется появляется ошибка
ERROR TypeError: Cannot read property 'focus' of undefined


Как сделать, чтобы этот код работал правильно в контексте описанной проблемы?
this.myCustomButton.nativeElement.focus();
  • Вопрос задан
  • 117 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@kttotto
пофиг на чем писать
Создать в дочернем компоненте метод, который будет делать фокус. А из родителя этот метод дергать как this.myCustomButton.focus()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Сбер Москва
от 130 000 ₽
Wanted. Ростов-на-Дону
До 160 000 ₽
ClickStar Санкт-Петербург
от 150 000 до 300 000 ₽