gpt4 book ai didi

javascript - JS CustomEvent 参数在 Angular 中作为未定义传递

转载 作者:行者123 更新时间:2023-12-02 23:59:41 24 4
gpt4 key购买 nike

我试图从 JS 中调用 Angular 函数,但是传递给 Angular 的参数未定义。我缺少什么?理想情况下,我也想从调度事件返回结果。我应该使用更好的解决方案吗?

JS函数

  var event = new CustomEvent('test', {
id: "a", id2:"ttt"
});
window.dispatchEvent(event);

Angular 分量

  @HostListener('window:test', ['$event.id','$event.id2'])
test(id,id2) {
console.log('ang called from JS: '+id+' '+id2)
}

输出到控制台:从 JS 调用的 ang:未定义未定义

目标:ang 被 JS 调用:a ttt

最佳答案

据我所知,您只能向CustomEvent传递一个参数,即detail。所以,你的代码不应该是可编译的。您需要将其更改为

onClick() {
const event = new CustomEvent('test', {
detail: {
id: 'a', id2: 'ttt'
}
});
window.dispatchEvent(event);
}

在此之后,您的处理程序将是

@HostListener('window:test', ['$event.detail.id', '$event.detail.id2'])
test(id, id2) {
console.log('ang called from JS: ' + id + ' ' + id2);
}

关于javascript - JS CustomEvent 参数在 Angular 中作为未定义传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55229463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com