javascript - 如何从 angular.js 中的服务进行 $rootScope.$broadcast

标签 javascript jquery angularjs

如何从 angular.js 中的服务 $rootScope.$broadcast

在 $rootScope.$broadcast 之后,我想从 Controller 进行 console.log(data),但我在控制台中看不到任何内容

我的代码:

'use strict';

angular.module('adf.widget.charts')
   .factory('chartService', function ($q, $rootScope){
    return {
      getSpreadsheet: function init(path){
        var deferred = $q.defer();
        Tabletop.init({
          key: path,
          callback: function(data, Tabletop) {
             $rootScope.$broadcast(data)
      },
          simpleSheet: true,
          debug: true
        });
      }
    }

  })


  .controller('piechartCtrl', ['$scope', 'chartService', function($scope, chartService, urls) {
    $scope.$on('getSpreadsheet', function(data){
      console.log(data)
    });

  }]);

最佳答案

$rootScope.$broadcast 应该将第一个参数设置为事件名称,然后您可以将数据作为第二个参数传递给该事件。

$rootScope.$broadcast('getSpreadsheet', data)

关于javascript - 如何从 angular.js 中的服务进行 $rootScope.$broadcast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34814238/

相关文章:

javascript - HTML 5 文件 API

javascript - 多个 DatePicker 上的不同操作

angularjs - 如何在angularjs中调用 Controller 中的函数?

javascript - angularJS,一个通知部分或模态,加载几秒钟然后消失

javascript - 如何在 JavaScript 函数中传递文件元素

javascript - 当我尝试提交 HTML 表单时显示错误 "Cannot POST"

javascript - 简单的 jquery 单击事件脚本,它是一个循环

javascript - AngularJS $locationProvider.search() 导致未捕获对象错误

javascript - 如何使用 javascript 或 jquery 转换以下字符串

javascript - 如何使用 showdown.js 将表格文本打印到 md 表格?