Angad
Angad

Reputation: 3429

Event handler that executed only once

Is there a directive or a way to implement in AngularJS what .one() function achieves with jQuery?

i.e., to attach an event to an element that gets executed only once.

Upvotes: 5

Views: 5866

Answers (1)

Mathew Berg
Mathew Berg

Reputation: 28750

Wire up an ng-click to the element you want, then in the ng-click function in your controller have a variable that you toggle to a state that would make the ng-click no longer execute something like

var firedOnce = false;
scope.myClickFunction = function(){
    if(firedOnce){ return; }
    //other code
    firedOnce = true;
}

You could also wire up a directive to do it too.

edit: Jsfiddle of directive method: http://jsfiddle.net/4hDb3/

Upvotes: 11

Related Questions