Javascript 范围:$on can';t更新指令作用域

Javascript 范围:$on can';t更新指令作用域,javascript,angularjs,Javascript,Angularjs,嘿,我的指令有些问题。我无法使用scope更新我的scope的inside指令。$on。这是我的代码示例 函数linkdir1(范围){ 元素绑定('单击',函数(){ scope.emit('someEvent',scope.data,scope.data2);//emit to parent指令 }); } 函数parentDir($scope){ $scope.$on('someEvent',函数(e、数据、数据2){ $scope.$broadcast('broadcastEvent'

嘿,我的指令有些问题。我无法使用scope更新我的scope的inside指令。$on。这是我的代码示例

函数linkdir1(范围){
元素绑定('单击',函数(){
scope.emit('someEvent',scope.data,scope.data2);//emit to parent指令
});
}
函数parentDir($scope){
$scope.$on('someEvent',函数(e、数据、数据2){
$scope.$broadcast('broadcastEvent',data+data2);
});
}
功能linkdir2(范围){
scope.$on('broadcastEvent',函数(e,data){//我可以看到这些数据,但无法更新scope。
数据==0?scope.show=false:scope.show=true;
});  
}

欢迎光临。我想我会把它作为一个答案,让其他人很容易找到它。如果你能接受它,如果它能解决你的问题,那就太好了


在事件处理程序的末尾。

尝试作用域。$apply();在事件处理程序的末尾。-尝试更改OneCtrl中的$scope.data变量以查看其工作情况。请粘贴您的指令代码好吗?谢谢@sdfacre。结束:)我有一个问题。我使用了两次scope.$apply,下一次使用显示我们对$digest发出警报,我使用$evalAsync修复了它,它正在工作,但它是唯一的解决方案?为什么需要两个scope.$apply?你能给我看看代码吗?我需要它来更新其他指令。我刚刚在两个指令中使用了$apply,我得到了$digest问题。这是没有您描述的错误的plunk。请随意更改并保存,以便我可以查看。
scope.$apply();