4

问候溢出者,

包含eventjs脚本时,使用 angularjs 绑定函数在元素上注册事件处理程序不起作用!

我的印象是 eventjs 会将默认的 addEventListener 函数替换为它自己的函数,它将被 angularjs 绑定函数无缝使用。

我尝试在 angularjs 之前和之后包含 eventjs,但没有运气。

有任何想法吗?

亲切的问候

4

2 回答 2

1

我能够让事件绑定,但我很快发现某些事件无法使用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

于 2013-07-08T21:04:32.033 回答
1

似乎事件消息变成了 Angular 不期望的东西。(不知道具体情况,等待社区更好的回答……)

只是一个简单的解决方法,如果您使用 jQuery(在 angularJs 之前获取它),它会起作用

于 2013-07-08T08:09:50.243 回答