4 votes

En utilisant eventjs avec angularjs ne fonctionne pas

Salutations Overflowers,

Utiliser la fonction bind d'angularjs pour enregistrer des gestionnaires d'événements sur des éléments ne fonctionne pas lorsque le script eventjs est inclus!

J'avais l'impression qu'eventjs remplacerait la fonction addEventListener par la sienne propre qui serait utilisée par la fonction bind d'angularjs de manière transparente.

J'ai essayé d'inclure eventjs avant et après angularjs mais sans succès.

Des idées?

Cordialement

1voto

Tosh Points 13477

Il semble que le message de l'événement devienne quelque chose qu'Angular n'attend pas. (Je ne connais pas les détails, j'attendrai une meilleure réponse de la communauté...)

Juste une solution de contournement simple, cela fonctionnerait si vous utilisez jQuery (l'importer avant AngularJS)

1voto

moderndegree Points 3674

J'ai réussi à faire fonctionner les événements en les liant, mais j'ai bientôt découvert que certains événements ne fonctionnent pas en utilisant angular.element.bind(). Par exemple, dans le cas de l'événement click, j'ai dû utiliser la syntaxe Event.add().

Voici à quoi cela ressemble:

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){
      // ici, il utilise la syntaxe 'bind'
      elm.bind('mousedown mouseup mouseenter mouseleave', function(evt){
        $log.debug(evt);
        scope.eventType = evt.type;
        scope.$apply();
      });
      // ici, il utilise Event.add
      Event.add(elm[0], 'click', function(evt, context) {
        $log.debug(context);
        scope.gesture = context.gesture + ', ' + context.pointerType;
        scope.$apply();
      });
    }
  };
});

Vous pouvez voir une démo ici: http://plnkr.co/edit/FLMckw?p=preview

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X