为什么这个角度按键事件绑定到$ document两次?

时间:2015-07-23 19:45:26

标签: javascript angularjs

我有一个Angular指令绑定$ document上的所有keypress事件并将它们广播到rootScope。

问题是每次按键都会触发两次。为什么会这样?我甚至删除了rootScope广播片段,但我仍然看到双重事件被拾取

.directive('keypressEvents', function ($document, $rootScope) {
    return {
        restrict: 'A',
        link: function () {
            console.log('Linking keypress listener to document.');
            $document.bind('keypress', function (e) {
                console.log('keypress detectected on $document. Broadcasting to $rootScope');
                $rootScope.$broadcast('keypress', e, String.fromCharCode(e.which));
            });
        }
    }
})

我在视图中使用它:

<div class="row topPad60 leftPad70" keypress-events ng-cloak> 
 other stuff...
</div>

修改 我试图取消绑定侦听,但我仍然看到事件在第一次页面加载时被触发两次(意味着指令不应再次加载)

0 个答案:

没有答案