It seems to be related to the <button>
event handling on Internet Explorer. Clicking it dispatches 2 events : MouseEvent
and PointerEvent
which explains why homeAction
is called twice.
The easiest solution would be to change the <button>
element to another DOM element (i.e. <a>
or <span>
)
Updated version using an <a>
element http://plnkr.co/edit/Nn8CF7TnDKqsJA3unsp6
Another solution would be to verify which type of Event is dispatched and only allow MouseEvents
. You can do this by passing the $event on your HomeAction
and check the existence of the pointerType
property (which is only available on TouchEvents). An example on plnkr : http://plnkr.co/edit/RmVHT1Pf2IeCNdmDH51T
$scope.homeAction = function($event) {
if ($event.originalEvent.pointerType) {
//PointerEvent, don't do anything
return;
}
console.log("HomeAction");
};