Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从中声明的子窗口调用主窗口中的函数_Javascript_Angularjs - Fatal编程技术网

Javascript 从中声明的子窗口调用主窗口中的函数

Javascript 从中声明的子窗口调用主窗口中的函数,javascript,angularjs,Javascript,Angularjs,这个问题让我抓狂,好几个小时都找不到任何解决办法。我相信你们能帮我 我的controller.js文件中有一个controller,其中包含关于我页面的所有信息。我在这个页面上有一个按钮,它在一个新的弹出窗口中打开同一个页面。当用户单击弹出页面上的按钮时,我试图调用主窗口中的函数 Mycontroller.js: .controller('rackLayoutController', ['$scope', 'appService', 'rackLayoutService', 'siteServi

这个问题让我抓狂,好几个小时都找不到任何解决办法。我相信你们能帮我

我的
controller.js
文件中有一个controller,其中包含关于我页面的所有信息。我在这个页面上有一个按钮,它在一个新的弹出窗口中打开同一个页面。当用户单击弹出页面上的按钮时,我试图调用主窗口中的函数

My
controller.js

.controller('rackLayoutController', ['$scope', 'appService', 'rackLayoutService', 'siteService', '$location', '$log', '$sanitize', '$window', '$timeout',
function ($scope, appService, rackLayoutService, siteService, $location, $log, $window, $timeout) {

$( window ).ready(function() {
    function refreshPopout(){
        $(window).ready(function(){
            console.log("readyyyyy");
            setTimeout(function () {

                window.location.reload();

            }, 1000);

            });
        }
    });

    $scope.$on('updateRack', function () {
        console.log("BROAD 1");
        window.opener.refreshPopout();    

    })
当用户单击按钮时,我正在调用
broadcast updateRack
,它正在打印我的
log
,这很好,但功能不起作用

我得到一个错误:

TypeError:Object[Object global]没有方法“refreshPopout”

谢谢

当您调用refreshPopout时,它不是全局的

尝试:


谢谢你的回答。因为它是同一个页面(但不同的窗口),我想我不必让它成为全局的。现在可以了。
$( window ).ready(function() {
    function refreshPopout(){
$( window ).ready(function() {
    window.refreshPopout = function(){