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