Angular 4 dispatchEvent with custom event
我的要求是将事件从代码触发到父托管组件。
我在这里使用第一个答案作为参考:angular2手动触发特定元素上的点击事件
如果我尝试这样做,效果很好:
1 | this.itemHost.viewContainerRef.element.nativeElement.dispatchEvent(new Event('click')); |
在父组件中,我这样写:
1 | (click)="go()" |
当上面的代码发生时,它到达go方法。
但是如果我使用一些自定义事件名称来完成此操作,例如:
1 | this.itemHost.viewContainerRef.element.nativeElement.dispatchEvent(new Event('customEvent')); |
并在父组件中:
1 | (customEvent)="go()" |
如何使用自定义事件?
您的活动没有冒泡。试试吧:
1 | .dispatchEvent(new Event('customEvent', { bubbles: true })); |
柱塞示例
使用
父母
1 2 3 4 5 6 7 8 9 10 | @Component({ selector: 'parent', template: `<child (customEvent)="onCustomEvent($event)"></child> }) export class ParentComponent { onCustomEvent(response: string): void { console.log(response); } } |
孩子
1 2 3 4 5 6 7 8 9 10 | @Component({ selector: 'child', template: ` }) export class ChildComponent { @Output() customEvent: EventEmitter<string> = new EventEmitter<string>(); } |