0

这个问题让我发疯,几个小时我都找不到任何解决方案。我相信你们可以帮助我。

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

我的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] has no method 'refreshPopout'

谢谢

4

1 回答 1

1
$( window ).ready(function() {
    function refreshPopout(){

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

尝试:

$( window ).ready(function() {
    window.refreshPopout = function(){
于 2013-10-10T21:26:18.570 回答