事件传播到兄弟姐妹(不包括自我/发射器)

时间:2015-03-17 12:34:31

标签: angularjs angularjs-scope

我想向兄弟姐妹发送一个事件,但事件发件人除外。我知道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
});

1 个答案:

答案 0 :(得分:0)

无法明确发送排除发送范围的事件。我认为您的解决方法(或类似的东西,例如包括范围$ id)是最佳解决方案。