如何从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)
});
}]);
答案 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'
})