如何查看 angular 2 中的事件是否已执行?

How to find out if an event in angular 2 is implemented?

我有这个代码(angular 2 飞镖):

@Component(
    selector: 'alert',
    events: const ['close'])
@View(
    templateUrl: 'alert.html')
class Alert implements OnInit{
  String type = 'warning';
  EventEmitter close = new EventEmitter();
}

如何知道用户是否实现了 (close) 属性:

<alert (close)="closeAlert($event)">Alert!</alert>

或者查明用户是否没有指定参数?我无法检查 close 是否为空。因为这不是 callback,而是 EventEmitter 对象。

close 属性 不必是 EventEmitter。您可以创建 StreamController 并将其流发布为 closeStreamControlleronListen 属性 会在客户端连接到控制器时通知您,这就是您知道用户正在收听流的方式。仅仅依靠 (close) 属性不是很可靠,因为您的组件可以从 Angular 模板以及以编程方式使用。

参见:https://api.dartlang.org/1.12.1/dart-async/StreamController/onListen.html