Есть ли встроенное событие Angular lostfocus? - PullRequest
0 голосов
/ 05 июня 2019

Итак, я пошел дальше и реализовал пользовательскую директиву:

@Directive({ selector: 'input[applostfocus]' })
export class LostFocus {
    @Output()
    applostfocus = new EventEmitter<any>();

    @HostListener('focusout', ['$event.target' ])
    focusout(input) {
        this.applostfocus.emit(input);
    }
}

Он слушает событие onfocusout DOM и генерирует событие.

Если он включен в модуль, его можно использовать так:

<input type="number" (applostfocus)="numberLostfocus($event)"></input>

public numberLostfocus($event) {
    console.log("applostfocus");
}

Однако мой вопрос таков: Может ли быть так, что @Directive, подобный этому, не существует в Angular 7?

Я искал в Интернете, и были только решения для AngularJS. Также я смотрю на официальные документы . Причина, по которой я спрашиваю, заключается в том, что это кажется немного чрезмерным и неестественным по отношению к такой продвинутой структуре.

Например, вам не нужно создавать пользовательскую директиву для прослушивания события щелчка:

<button type="button" (click)="somemethod()"></button>

Я написал этот вопрос, чтобы убедиться, что я все делаю правильно, и что я не изобретаю велосипед. Я ожидаю, что ответы как:

  • Да, Вы делаете Это правильно, нет такой вещи, как: ...
  • Нет, вы пропали без вести ...

Edit:

Это на самом деле задокументировано здесь .

1 Ответ

0 голосов
/ 05 июня 2019

Вы можете использовать (blur)="numberLostfocus($event)" для той же цели. Он встроен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...