Для того, чтобы смоделировать прослушиватель событий в угловых, вам нужно два компонента. Представьте, что вы используете селектор дочернего компонента в родительском компоненте и хотите добавить событие в селектор дочернего компонента. шаги, которые вы должны выполнить по порядку:
1 - добавьте @Output в дочерний файл component.ts. Затем вы пишете имя события и вам следует присвоить его классу EventEmitter.
в дочернем компоненте:
@Output change = new EventEmitter()
тогда в дочернем компоненте у вас есть метод, который в этом методе должен генерировать событие. представьте, что у нас есть звезда, которая, нажав на нее, делает пустую звезду. Хорошо! нет в дочернем компоненте у нас есть:
onClick(){
this.change.emit();
///do other code
}
тогда вы можете использовать имя изменения как событие в теге селектора дочернего компонента в родительском компоненте.
в родительском html:
<child (change)="doSomeThing()"></child>
в родительском файле TS:
doSomeThing(){
console.log('i am in parent');
}
Теперь, если вы хотите передать данные, это действительно просто. просто перейдите к дочернему компоненту и передайте аргумент в методе emit. теперь все подписчики этого события могут передавать данные;
в дочернем компоненте.ts
onClick(){
this.change.emit(arg);
///do other code
}
Теперь перейдите в родительский component.ts:
doSomeThing(data){
console.log('i am in parent' , data);
}
последний шаг:
перейти к родительскому html и в качестве параметра для события вы должны передать $ event.
<child (change)="doSomeThing($event)"></child>
В общем случае $ event передает все условия об объекте DOM, но здесь просто передаются данные, которые установлены в родительском компоненте.
Я надеюсь, что это полезно для вас.