2013-10-14 73 views
0

我們試圖使用此代碼從頁面控制器獲取廣播事件。如何從一個單獨的控制器獲取一個事件到另一個頁面控制器?

Controller1.js 
    scope.createList = function() { 
     scope.$broadcast("event: list updated", true); 
    } 

Controller2.js 
    scope.$on("event: list updated", function(value) { 
     console.log('event update"); 
    }); 

此方法在一個頁面控制器內工作,但不在單獨的js控制器中工作。 controller1.js如何通知controller1.js?

+0

您可以使用服務/提供商共享數據 – Sprottenwels

回答

1

$ broadcast方法爲所有子範圍發出事件,因此偵聽器控制器應該在其中。相反,您可以在$ rootScope的範圍內進行廣播,因此每個範圍都能夠捕捉該事件。

.controller("Controller1", function ($scope, $rootScope) { 
    $scope.createList = function() { 
     $rootScope.$broadcast("event: list updated", true); 
    } 
}) 
+0

這是正確的,您是$橫向向下廣播樹... – btm1

相關問題