在 AngularJS 和非 AngularJS 弹出窗口之间共享变量
Sharing a variable between AngularJS and a non-AngularJS popup window
有点像AngularJS
的新手,我对AngularJS应用程序以及不使用Angular的弹出窗口有疑问。
例如:Angular 应用程序包含一个指令,该指令打开一个弹出窗口,将 url 中的一些作用域变量作为参数共享。 弹出窗口包含一些操作数据的原型类,并返回 AngularJS 应用程序需要的对象。 我对原型JS的控制很少,因为该代码有些遗留。 我尝试通过jQuery从弹出窗口中选择Angular应用程序中的元素,但是这似乎不是解决此问题的正确方法。 如何在非AngularJS弹出窗口和AngularJS应用程序之间"共享"数据?
您可以使用弹出窗口代码中的以下内容从弹出窗口向"打开器"(打开弹出窗口的窗口)发布消息:
window.opener.postMessage(yourDataObject, 'https://www.yourdomain.com')
严格使用第二个参数,只允许你的域。切勿使用"*",就好像您的数据是(或变得)敏感的,任何人都可以从他们的网站打开您的弹出窗口并获取此信息。
然后在您的 AngularJS 应用程序(开场白)中,添加一个侦听器:
window.addEventListener("message", yourListenerFunction, useCapture)
要了解useCapture
应该是真还是假,请阅读 addEventListener 中的无法理解 useCapture 属性,并根据您想要捕获事件的时间查看什么更适合您。
尤尼斯为维斯塔克
相关文章:
- angularjs中$cookiestore和$cookies之间的差异
- 使用服务(AngularJS)在控制器之间共享数据
- AngularJS中的页面之间共享数据返回空
- AngularJS$inject-点和括号访问器之间的差异
- 测试页面之间的AngularJS行为
- angularjs 中 $window.location.reload() 和 $route.reload() 之间的区
- Angularjs事件与发布/订阅指令之间的通信
- 使用工厂/服务在控制器AngularJS之间推送数组中的数据
- JSF和AngularJS之间的异同
- 代码在 Meteor 和 AngularJS 之间的可转移性如何
- 想要在登录页面和其他页面应用程序 angularjs 之间分开
- 在控制器 AngularJS 之间共享功能
- AngularJS 之间的管理时间格式 - MySQL.
- 在控制器 AngularJS 之间传递 ID 值
- nodejs 和 angularjs 之间的路由冲突
- 使用在nodeJs和angularJS之间共享变量
- 在同级Angularjs之间共享数据
- express + angularJS之间的通信
- 错误请求后请求在spring-boot和angularjs之间出现错误
- 使用智能表在视图状态 AngularJs 之间持久化数据