首页 > 解决方案 > 控制器中未收到广播 - angularjs

问题描述

我在文件中有一个链接可以打开另一个文件。第二个文件中有标签。从第一个文件打开第二个文件时,我希望显示一个特定的选项卡。

第一个文件的链接不是打开第二个文件的唯一方式。因此,仅当从第一个文件打开第二个文件时,我才希望显示第二个选项卡

选项卡使用active类工作。当它有一个类时active,会显示该选项卡。

我试图通过在单击链接时广播然后路由到第二个文件来做到这一点。但它不起作用。

我猜当第一个控制器文件广播事件时,第二个控制器没有初始化。

    <a href="#!/adminassociation" 
       ng-click="showGoverningBodyTab()">Link to second file</a>

ng-click这个链接上,我广播了这个事件

$scope.showGoverningBodyTab = function(){

  $rootScope.$broadcast('displayGoverningBody', {data: null});
}

在第二个文件中:

  $timeout($scope.$on('displayGoverningBody', function(){
    console.log("broadcast");
    $('#myassociation').removeClass('active');
    $('#documentregistry').removeClass('active');
    $('#governingmembers').addClass('active');
  }));

我也没有看到console.log

编辑:当我在广播事件的控制器上使用此答案中的解决方案时,它起作用了

标签: javascriptangularjs

解决方案


推荐阅读