簡體   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