Angular2我可以将自定义参数传递给Host Listener事件吗

Din*_*ino 3 angular

这是我当前的主持人监听器

 @HostListener('document:myCustomEvent', ['$event'])
 updateNodes(event) {
    console.log(this.variable);
 }
Run Code Online (Sandbox Code Playgroud)

我在这里称呼它:

var event = document.createEvent("CustomEvent");
event.initCustomEvent('myCustomEvent', true, true,
  true);
Run Code Online (Sandbox Code Playgroud)

document.dispatchEvent(event);

我的问题是,我可以将自定义参数传递给updateNodes吗?例如:

@HostListener('document:myCustomEvent', ['$event'])
updateNodes(event, param1, param2) {
 console.log(this.variable);
 console.log(param1);
 console.log(param2);
 }
Run Code Online (Sandbox Code Playgroud)

yur*_*zui 6

通过这种方式调度事件:

var event = new CustomEvent(
    'myCustomEvent',
    { detail: { 'param1': 1, 'param2': 2 } }
);

document.dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)

然后

@HostListener('document:myCustomEvent', ['$event', '$event.detail.param1', '$event.detail.param2'])
updateNodes(event, param1, param2) {
    console.log(param1);
    console.log(param2);
}
Run Code Online (Sandbox Code Playgroud)

柱塞示例