繁体   English   中英

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

[英]How to $rootScope.$broadcast from services in angular.js

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

在$ rootScope。$ broadcast之后,我想从控制器进行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)

这是$broadcast语法:

$broadcast(name, args);

name参数表示应该在子作用域下触发的事件的名称。

例:

$broadcast('testEvent', 'test data');

$on('testEvent', function(arg){
   console.log(arg);   //This will log 'test data'
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM