如何从弹出窗口发出AngularJS事件?

时间:2016-06-01 02:03:49

标签: javascript angularjs popup

场景:我有一个使用Google身份验证的AngularJS应用。

取决于资源,当Angular调用(my)后端时,它可以返回一个请求Oauth令牌的响应。 在这种情况下,Angular将显示带有该重定向URL的弹出窗口(不是Bootstrap的模态对话框)。

Google会进行身份验证,请求获得许可,然后将用户发回给我。 有一个回调URL将处理'代码'并获得真正的令牌。这个callbak URL将在弹出窗口中调用。

当我获得令牌时,弹出窗口应自动关闭,并通知Angular再次尝试最后一个请求(现在我在用户的会话中有令牌)

问题:弹出窗口如何发出Angular事件?

实际上,它不一定是$rootScope.$emit,而只是一种通知Angular的方式。

我看到了this option,但对Angular来说似乎并不好:(

2 个答案:

答案 0 :(得分:0)

您可以使用localStorage活动,看一下这个演示:http://html5demos.com/storage-events

option

答案 1 :(得分:0)

首先创建服务。

app.service("servicee", function(){
  return {
    set : function(k,v){
          this[k] = v;    
     },
     get : function (k){
        return this[k]
     }
  }
});

现在,在弹出窗口中,您可以在服务中设置令牌,现在您可以通过应用程序获得值。您还可以$查看服务中的特定键,并在设置值时执行某些操作。