angularjs - 如何在angular js中将$scope传递给$window.open

标签 angularjs

我需要将 $scope 从我的父窗口传递到新窗口。我在我的 javascript 函数中为新窗口编写了 $window.open() 代码。但是在新窗口中,我没有得到 $scope。下面我给出了代码。

1)JS文件

$scope.mainPageNewsArchive = data.newsArchiveList;
var myWindow1 = $window.open("resources/partials/NewFile.html", "News Archive", 'toolbar=0,scrollbars=1,location=0,status=0,menubar=0,resizable=1,width=650, height=550,left = 300,top=100');

2) 新文件.html
<div>
                  <table border="0" cellspacing=0 cellpadding=2 width="100%" id="tkm">
                            <tbody>

                                <tr x-ng-repeat="newsArchive in mainPageNewsArchive track by $index">
                                    <td align=left >{{newsArchive.createDate}}</td>
                                    <td>&nbsp;</td>
                                    <td align=left><a href="" ng-click="showNewsItem(newsArchive.id)" title="Click for more detail">{{newsArchive.title}}</a>
                                    </td>
                                </tr>

                            </tbody>
                        </table>
</div>

最佳答案

由主窗口打开的窗口在架构上将无法与其父窗口共享相同的范围。因为 Angular 范围是按 DOM 元素定义的。但是你可以通过使用 window.open() 方法返回的 window 对象来传递数据

angular.module('originalModule').service('popupService', function(someOtherDataService) {

  var popupWindow = window.open('popupWindow.html');
  popupWindow.mySharedData = someOtherDataService.importantData;

});

一旦您的辅助“弹出” Angular 应用程序被初始化,它就可以通过读取 window.mySharedData 来引用共享数据。



您可以引用新生成的窗口的 rootscope,然后通过子窗口的范围从父窗口传递事件。

家长:
var newWindowRef = $window.open("", "New Window", "width=1280,height=890,resizable=1");
var newWindowRootScope = newWindowRef.angular.element("#MY_ROOT_APP_ELEMENT_ID").scope();
newWindowRootScope.$broadcast("INTER_WINDOW_DATA_TRANSFER", {someData : "I'm data"});

child :
$rootScope.$on("INTER_WINDOW_DATA_TRANSFER", function (data, args) {                   
        console.log("DATA RECEIVED: " + args.someData);
    });

关于angularjs - 如何在angular js中将$scope传递给$window.open,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31873832/

相关文章:

javascript - AngularJS 指令强制模型采用数字格式

javascript - 加载大量数据/内容时,网站滚动速度很慢

javascript - 在 angularjs 中找不到 Firebase

javascript - 使用 Angularjs 切换按钮并将其设置为事件按钮

angularjs - 使用 Phantom.js 使用 Protractor 进行 e2e 测试

angularjs - Angular : Dropdowns, 防止 ng-selected 触发 ng-change

javascript - 使用 ng-repeat Bootstrap 不同的 col-*

javascript - Angular 路线不起作用

angularjs - karma 开始 - 传递参数

angularjs - 如何在 ngOptions 中连接字符串?