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

时间:2017-03-22 16:17:48

标签: angular

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

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

我在这里称呼它:

var event = document.createEvent("CustomEvent");
event.initCustomEvent('myCustomEvent', true, true,
  true);

document.dispatchEvent(事件);

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

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

1 个答案:

答案 0 :(得分:4)

以这种方式发送事件:

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

document.dispatchEvent(event);

然后

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

<强> Plunker Example