javascript - 在模态 Controller 中调用事件

标签 javascript angularjs emit

我的 mainController 上有一个 $scope.$on 回调函数。无论我从每个 Controller 调用它,它都可以完美运行。但是当我在打开 modal 后从 modalController 调用它时,它不起作用:

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

//------------------------主 Controller 结束

 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);

    }
    ]);



   });

advertisementController 中的 $scope.$emit('loadingPage', true); 工作正常,但在 addClientCrtl 中不起作用。我必须引用模态 Controller 在 adviertisementController 中定义并在其中调用

最佳答案

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

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

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

关于javascript - 在模态 Controller 中调用事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38500197/

相关文章:

javascript - 通过 jQuery 定位表的偶数行

javascript - 根据语言偏好更改网站版本

javascript - 我的“完成”按钮不知何故转到了空白页面,除非刷新 -ajax,否则删除将不起作用

javascript - 在 AngularJS UI-Router 中动态更改 View

angularjs - Restangular - 嵌套资源

python - 从 CSV 加载数据时,QAbstractListModel 不会更新值,但在使用硬编码值时会更新

node.js - socket.io无法调用未定义的方法 'emit'(使用node.js和express,jade)

javascript - setTimeout 变量中的函数被覆盖

angularjs - 在文本区域中插入制表符

methods - vue2 使用 $emit 从组件调用父函数