Vorrei aggiungere un evento click a un elemento con una direttiva. La parte importante è non definire il pulsante o il collegamento ipertestuale o qualsiasi altra cosa nella direttiva, ma solo l'attributo onClick e la funzione, che è chiamata.AngularJS - Aggiunta di un evento onClick a un pulsante tramite una direttiva
Quindi il codice HTML sembra qualcosa di simile:
<button my-dir type="button" class="btn btn-primary">test</button>
mia direttiva si presenta così:
.directive('myDir', function(){
return {
restrict: 'A',
scope: true,
link: function(scope, element, attrs) {
scope.functionToBeCalled = function(){
console.log("It worked!");
}
}
}
})
Ho provato ad aggiungere un "click" come questo:
element.bind('click',scope.functionToBeCalled());
Sfortunatamente ciò richiama la funzione una volta quando viene chiamato il collegamento, ma non quando si fa clic sul pulsante. Penso che devo usare compilare piuttosto che collegare e spostare la funzione ToBeCalled nella funzione restituita da compilare. Purtroppo non so come farlo.
Grazie per il vostro aiuto!
Solo una piccola cosa, sostituisci 'scope.functionToBeCalled' con' functionToBeCalled'. – bmleite
@bmleite Grazie! – dfsq