javascript - 控制器中未收到广播 - 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
。
编辑:当我在广播事件的控制器上使用此答案中的解决方案时,它起作用了
解决方案
推荐阅读
- php - Gulp 和 browserSync 配置与 MAMP:卡在重新加载浏览器
- shell - 当我使用 -w 而不是没有它时,为什么 grep 会返回匹配项?
- docker - GitLab 管道未执行 docker 映像的脚本部分中的命令
- javascript - 循环遍历函数对象并为对象中的每个函数添加一个新方法
- firebase - 如何从 Firebase 存储中的所有文件中删除下载 URL 选项?
- awk - 打印一个文件的行数和另一个文件的总数
- javascript - formData 不是反应中的构造函数
- c++ - 如何更改默认构造函数的参数?
- javascript - 用js动态创建对象
- php - 在 Prestashop 1.7 中显示作者类别中的作者姓名