javascript - 其他控制器未收到角度广播事件
问题描述
标题控制器
mapsModule = angular.module('maps-module');
mapsModule.controller('psHeaderCtrl', function($scope, $rootScope, MESSAGES,
psHttpSrvc){
$scope.addAlertPin = function(){
console.log('broadcast event');
$scope.$broadcast('event1', { data: 'asdasdasasda'});
}
});
地图控制器
map = angular.module('maps-module');
map.controller('map_controller',function
($scope,$rootScope,$timeout) {
$scope.$on('event1', function(event, args){
console.log('asdasdasd');
});
});
页眉.html
<div ng-controller="psHeaderCtrl">
<ul class="nav navbar-toolbar navbar-right navbar-toolbar-right">
<li class="nav-item" id="plus">
<a class="nav-link" data-toggle="" href="javascript:void(0)"
title="plus" ng-click="addAlertPin()">
<i class="icon wb-plus" aria-hidden="true"></i>
</a>
</li>
</ul>
</div>
所有文件都包括在内。Angular 工作正常,但未收到广播事件。
解决方案
尝试使用$rootScope
广播事件:
$scope.addAlertPin = function(){
console.log('broadcast event');
$rootScope.$broadcast('event1', { data: 'asdasdasasda'});
}
推荐阅读
- vue.js - 将 Nuxt 配置为按路由或页面包含 CSS,而不是全局
- c# - 如何在linq内部连接中添加小于或等于条件
- java - 如何在Android中使用Java在每个项目中生成具有不同背景颜色的微调器?
- selenium - 没有为多个套件生成范围报告
- hibernate - Hibernate Envers:阻止 onPostDelete 上的版本
- javascript - 是否可以使用 XPath 获得此结果集?
- css - CSS 网格可折叠行
- android - 如何将所有json属性解析为数组列表android
- swift - SwiftUI 网格索引超出范围
- azure - 使用 Azure 认知搜索为静态 HTML blob 存储内容编制索引未按预期工作