从外部窗口调用角度分量方法

时间:2018-03-14 08:38:20

标签: asp.net-mvc angular

我正在使用Angular 2在我的ASP .NET Web应用程序中使用twitter登录。 我想将数据从弹出窗口传递给组件。我使用了此link中提到的方法。 但是组件的回调不起作用。

以下是在外部登录窗口中加载的代码

window.dispatchEvent(new Event('socialSuccess'));

并且在调用弹出窗口的组件中,我编写了回调

 @HostListener('window:socialSuccess', ['$event'])

  onSocialSuccess(event) {
    alert("here");
    this.PopUpCallback(event)

  }

onSocialSuccess 方法未被调用。

请指导

由于

1 个答案:

答案 0 :(得分:0)

您正在尝试的内容无效,正如您在问题中提到的那样,您正在使用Twitter登录API打开弹出窗口进行登录。

原因是,有两个窗口,因此您有两个不同的window对象。

一个是主窗口(可能是您的应用程序窗口),另一个是弹出窗口。

解决方案:

假设您要将数据从弹出窗口传递到主窗口,因此在弹出窗口中,您应该使用上面已经尝试过的方法,但要小心使用window.opener.disp...

唯一不同的是,window.opener是启动弹出窗口的父窗口。

注意:window.opener可能无法在IE中使用,因此您可以参考this post获取IE浏览器。

希望有所帮助:)