Я пытаюсь автоматически закрыть NG Bootstrap alert по истечении заданного периода времени.В предупреждении уже есть событие закрытия, которое я использую в компоненте.Я добавляю дополнительную функцию тайм-аута в качестве директивы, которая должна иметь возможность инициировать само событие закрытия.Примерно так?
close-on-timeout.directive.ts
import { Directive, ElementRef, HostBinding, Input, OnInit } from '@angular/core';
@Directive({
selector: '[appCloseOnTimeout]'
})
export class CloseOnTimeoutDirective implements OnInit {
@Input() appCloseOnTimeout: number;
@HostBinding('close') close: CloseEvent;
constructor () {}
ngOnInit () {
setTimeout (() => this.close(), this.appCloseOnTimeout);
}
}
Я хочу использовать директиву следующим образом:
<ngb-alert
[dismissible]="alert.dismissible"
[type]="alert.type"
(close)="onClose(i)"
[appCloseOnTimeout]="1000"
>
Какой лучший способ получить доступ к событию close элемента host?Я попытался использовать ElementRef
вместо этого, но все еще не могу найти способ доступа к событиям.