我想向兄弟姐妹发送一个事件,但事件发件人除外。我知道targetScope应该包含发送者,但是因为我正在使用$ scope。$ parent我将无法识别事件的发送位置(event.targetScope将是$ scope。$ parent)。
$scope.$parent.$broadcast('superevent', data);
$scope.$on('superevent', function(event, data) {
// I don't want to do anything if it was sent from current $scope
});
目前我通过在事件数据中包含$ scope来解决方法。解决方法:
$scope.$parent.$broadcast('superevent', data, $scope);
$scope.$on('superevent', function(event, data, senderScope) {
if($scope === senderScope) {
return; // skip
}
// do something with the data
});
答案 0 :(得分:0)
无法明确发送排除发送范围的事件。我认为您的解决方法(或类似的东西,例如包括范围$ id)是最佳解决方案。