[英]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.