Показать сообщение отдельно
  #1 (permalink)  
Старый 22.01.2019, 16:56
Новичок на форуме
Отправить личное сообщение для ДашаДаша Посмотреть профиль Найти все сообщения от ДашаДаша
 
Регистрация: 27.12.2018
Сообщений: 3

Установить фокус в инпут
Почитав как делается установка фокуса в input https://coderanch.com/t/675897/langu...us-Angular-app

Решила сделать директиву
import { Directive, OnInit, Input, ElementRef, Renderer } from '@angular/core';

@Directive({
  selector: '[appSetFocus]'
})
export class SetFocusDirective implements OnInit {

  @Input('appSetFocus') isFocused: boolean;

  constructor(private hostElement: ElementRef, private renderer: Renderer) {}

  ngOnInit() {
    console.log('***SetFocusDirective***');
    if (this.isFocused) {
      this.renderer.invokeElementMethod(this.hostElement.nativeElement, 'focus');
    }
  }
}


Вот так применяю директиву в шаблоне
<input [appSetFocus]="addInput">

addInput - флаг, который делаю true, когда хочу получить фокус в инпуте

Но фокус не появляется

Меня смущает, что в директиве все происходит в функции OnInit() и в консоле вижу, что срабатывает один раз

Подскажите в чем ошибка
Ответить с цитированием