a.ctl.js 广播
$scope.$broadcast('selectTempDays', tempD);
b.ctl.js 接收
$scope.$on('selectTempDays', function(event, tempDays){
//do somthing
});
调试发现$on会调用多次导致处理结果不准确
解决:
- 利用全局变量 flag
定义一个全局可共享变量,这里我放在了关联的Service
this.onFlag = false;
广播之前设置一下
Service.onFlag = false;
$scope.$broadcast('selectTempDays', tempD);
接收
$scope.$on('selectTempDays', function(event, tempDays){
if(!Service.onFlag){
//do somthing
Service.onFlag = true;
}
});
- $destory 把广播销毁
let test = $scope.$on('selectTempDays', function(event, tempDays){
//do somthing
});
$scope.$on('$destroy',function(){
test();
});