如何$ angularScope。$来自angular.js

时间:2016-01-15 15:17:16

标签: javascript jquery angularjs

如何从angular.js中的服务广播$ rootScope。$。

在$ rootScope。$ broadcast之后

我想从控制器调试console.log(数据),但我在控制台中看不到任何内容

我的代码:

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

  }]);

2 个答案:

答案 0 :(得分:1)

$rootScope.$broadcast应该有第一个参数是事件名称&在您将数据作为第二个参数传递给该事件之后。

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

答案 1 :(得分:0)

以下是$broadcast语法:

$broadcast(name, args);

name参数表示应该在子范围行下触发的事件的名称。

示例:

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

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