作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在研究 Angular 应用程序。我有一个要求,当我向用户显示可用任务列表并单击特定任务时,打开一个具有相同 AngularJS 应用程序代码库的新窗口,这将允许用户对任务进行更改。新窗口中的应用程序将是独立的,用户可以执行一些操作。一旦用户关闭窗口,我需要刷新父应用程序(父窗口)中的任务列表。
我正在向子窗口传递一些数据,这些数据由一些属性和一个函数组成,
var appData = {
action: "edit",
id: taskId,
refreshTasks: refreshTasks
};
刷新任务是我的一个 Controller 中的一个方法
我按以下方式将数据传递给子窗口,
var windowHandle = $window.open("http://www.example.com");
if(angular.isDefined(windowHandle)) {
windowHandle.appData = (dataObj == null ? {} : dataObj);
windowHandle.appData.isChildWindow = true;
}
现在我们使用访问子窗口中传递的数据,
$window.appData
现在,当子窗口关闭时,我将按以下方式调用我传递的函数,
$window.appData.refreshTasks()
以上似乎在 Chrome 和 Mozilla 中有效,但在 IE (8,9,10,11) 中无效
所以我真的很想知道如何从一个窗口中的一个 Angular 应用程序调用函数到另一个窗口中的另一个 Angular 应用程序。
你能告诉我正确的方法是什么吗?
最佳答案
您可以使用 window.opener
访问 appData
:
window.opener.appData
window.opener.appData.refreshTasks()
关于javascript - 在新窗口中打开相同的 AngularJS 应用程序并在父窗口中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33369042/
我是一名优秀的程序员,十分优秀!