4

オーバーフローの皆さん、こんにちは。

eventjsスクリプトを含めると、要素にイベント ハンドラーを登録するために angularjs bind 関数を使用しても機能しません。

私は、eventjs がデフォルトの addEventListener 関数を独自の関数に置き換え、angularjs bind 関数によってシームレスに使用されるという印象を受けました。

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 に答える