Как прослушать пользовательское событие, созданное в компоненте в его директиве? - PullRequest
0 голосов
/ 24 октября 2019

Мне нужно создать пользовательское событие в угловом компоненте и обработать его в директиве. Как это может быть достигнуто

Я попытался использовать @Output в Компоненте и использовал @HostListner в директиве, чтобы посмотреть, смогу ли я прослушать это, но это не удалось. Поймите, что это пользовательское событие, а не событие по умолчанию, такое как щелчок или наведение мыши.

@Component({
...
template: `<div appOnInit> </div>
...
})
...
// In the component class
@Output() initReady: EventEmitter<string> = new EventEmitter();

ngOnInit() {
   ....
   this.initReady.emit('');
}

==========
// Directive
@Directive({
    selector: '[appOnInit]'
})
export class OnInitDirective {

    constructor() { }

    @HostListener('initReady', ['$event'])
    onInitReady(event: string) {
        console.log('Init info:' + event);
    }

}

Требуется возможность прослушивать пользовательское событие, созданное в компоненте. Или я должен использовать другой механизм здесь?

Пожалуйста, помогите, спасибо.

...