2015-07-21 37 views
1

這可能是我迄今爲止使用AngularJS時遇到的最奇怪的問題。 我們的網站由不同的路線構成。每條路由都有它的視圖和控制器,還有一個叫做MainCtrl的父控制器。 在我的index.html中導入我擁有的所有控制器。在某些時候,我重新路由到另一個子路由(我們將其稱爲/ iframe並將IframeCtrl作爲控制器),然後,當我嘗試從MainCtrl向下調度一個事件名稱給所有子節點(廣播函數在IframeCtrl中)時,沒有任何反應(本地沒問題,問題只在生產中)。我不知道是否問題在於,在我更改路由後,IframeCtrl中的函數尚未加載,但是我將它加載到index.html中,因此我認爲這足夠了,正如我所說的那樣,它可以工作本地。從另一個控制器廣播功能不起作用,但僅在生產中

這是MainCtrl代碼:

globalVariables.broadcastAnimateBar({stage : data.progress}); 

這是從我的應用程序的工廠代碼的

globalVariablesService.broadcastAnimateBar = function(stage) 
{ 
    $rootScope.$broadcast('animateBar',stage); 
} 

這是IframeCtrl

$scope.$on('animateBar', function(event,args){ 
. 
. 
. 
}) 
代碼

任何想法如何去做呢?

謝謝 米拉

回答

0

我設法得到它通過增加超時廣播

$timeout(function(){ 
     $rootScope.$broadcast('animateBar',stage); 
    }, 1000); 
工作
相關問題