在我的角度应用程序中,我必须打开一个新窗口并将一个事件发送回控制器。该代码在Chrome和Firefox上有效,但在 Edge
上不起作用下面是外部文件中的代码
try {
var ev = new Event('abc');
ev['data'] = model;
window.opener.dispatchEvent(ev);
} catch (e) {
alert(e);
}
在外部窗口中,我收到警报 ERROR:无效的参数。
在角度分量中我有听众
@HostListener('window:abc', ['$event'])
无法从其他答案中获得太多信息。
请指导 谢谢
答案 0 :(得分:0)
问题不是与disptachEvent有关,这是因为子窗口丢失了从其打开父窗口组件的范围。 为了解决这个问题,我从thread找到了解决方案。
在打开子窗口之前,我们必须设置angularComponentRef的引用
window['angularComponentRef'] = {component: this, zone: _ngZone};