让我们在我的控制器中说我发了一个事件:
@Output() somethingUpdated = new EventEmitter();
并在方法中:
***
this.somethingUpdated.emit();
***
在视图中我添加了:
(somethingUpdated)="somethingUpdated($event)"
在指令中我有:
@HostListener('somethingUpdated', ['$event'])
somethingUpdated() {
console.log('somethingUpdated');
}
但这不起作用。
我做错了什么?
答案 0 :(得分:0)
您将该处理程序绑定到文档上的事件。但这不是你想要的,你希望处理程序从你定义的输出源接收事件。
(输出源是发出事件btw的东西)。
在Angular(2+)中使用输出的任何示例都将指向正确的方向。
这是文档,查看,你会看到。
https://angular.io/docs/ts/latest/cookbook/component-communication.html
具体来说,查找部分,"父级侦听子事件"
您在那里使用的格式(绑定到doc事件)将非常有用,例如,您希望每次调整文档大小时都要触发处理程序。