Event handler that executed only once

angularjs, angularjs-directive, dom-events, javascript

Solution

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/

Problem

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.

Original source