在模态控制器中调用事件

时间:2016-07-21 09:25:23

标签: javascript angularjs emit

我的mainController上有一个$ scope。$ on callback函数。无论我从每个控制器调用它,它都能完美运行。但是当我在打开模态后从modalController调用它时,它不起作用:

define(['app', 'jquery'], function (app, $) {
    app.controller('MainViewControllerUser',
        function ($scope, $location, $rootScope, $interval, MainViewFactoryUser){
        $scope.$on('loadingPage', function (event, value) {
            $scope.chartLoading = value;
        });
}
});

// -----------------------主控制器结束

 define(['app', 'underscore'], function (app, _) {
        app.controller('advertisementController',
            ['$scope', '$location', '$rootScope', '$interval', 'toaster', 'advertisementFactory', '$modal',
                function ($scope, $location, $rootScope, $interval, toaster, advertisementFactory, $modal) {
                $scope.$emit('loadingPage', true);

    }
    ]);



  app.controller('addClientCrtl',
            ['$scope', '$modalInstance', 'toaster', 'advertisementFactory',
                function ($scope, $modalInstance, toaster, advertisementFactory)
    {
                    $scope.$emit('loadingPage', true);

    }
    ]);



   });

广告控制器中的$scope.$emit('loadingPage', true);工作得很好,但在addClientCrtl中不起作用。我必须引用模态控制器在adviertisementController中定义并在其中调用

1 个答案:

答案 0 :(得分:2)

您可以尝试使用$ rootScope代替$ scope:

$rootScope.$on('loadingPage', function ({
});

$rootScope.$emit('loadingPage', true);