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){
.
.
.
})

任何想法如何去做?

谢谢你,米拉

4

1 回答 1

0

我设法通过在广播中添加超时来让它工作

  $timeout(function(){
       $rootScope.$broadcast('animateBar',stage);
  }, 1000);
于 2015-07-26T10:30:25.340 回答