AngularJS ng-click fires twice
This is probably obscure, but I had ng-click
firing twice because I had BrowserSync running, which would mirror my inputs into a tab that I had open in another window, thus doubling up all my clicks. To resolve, I disabled “ghostMode”: https://www.browsersync.io/docs/options/
Same problem using
<a ng-click="fn()"></a>
fn was called twice
Using a button fixed it :
<button ng-click="fn()"></button>
The code you've provided does not fire the event twice:
http://jsfiddle.net/kNL6E/ (click Save
)
Perhaps you included Angular twice? If you do that, you'll get two alerts, demonstrated here:
http://jsfiddle.net/kNL6E/1/
I had a similar problem, but could not find where I included Angular twice in my files.
I was using an ajax calls to load specific form layouts, so I need to use $compile
to activate Angular on the inserted DOM. However, I was using $compile
on my directive $element
which has a controller attached. Turns out this "includes" the controller twice, causing two triggers with ng-click
or ng-submit
.
I fixed this by using $compile
directly on the inserted DOM instead of my directive $element
.