问候溢出者,
包含eventjs脚本时,使用 angularjs 绑定函数在元素上注册事件处理程序不起作用!
我的印象是 eventjs 会将默认的 addEventListener 函数替换为它自己的函数,它将被 angularjs 绑定函数无缝使用。
我尝试在 angularjs 之前和之后包含 eventjs,但没有运气。
有任何想法吗?
亲切的问候
我能够让事件绑定,但我很快发现某些事件无法使用angular.element.bind()
. 例如,在click
事件的情况下,我不得不使用Event.add()
语法。
这是它的样子:
angular.module('myApp', []).config(function(){
Event.modifyEventListener = true;
Event.modifySelectors = true;
}).controller('SomeCtrl', function($scope){
$scope.eventType = "";
}).directive('foo', function($log){
return {
link: function(scope, elm, attr){
// here it is using the 'bind' syntax
elm.bind('mousedown mouseup mouseenter mouseleave', function(evt){
$log.debug(evt);
scope.eventType = evt.type;
scope.$apply();
});
// here it is using Event.add
Event.add(elm[0], 'click', function(evt, context) {
$log.debug(context);
scope.gesture = context.gesture + ', ' + context.pointerType;
scope.$apply();
});
}
};
});
你可以在这里看到一个演示:http: //plnkr.co/edit/FLMckw ?p=preview
似乎事件消息变成了 Angular 不期望的东西。(不知道具体情况,等待社区更好的回答……)
只是一个简单的解决方法,如果您使用 jQuery(在 angularJs 之前获取它),它会起作用