This seems to be related to <button> event handling in Internet Explorer. Clicking on it dispatches 2 events: MouseEvent and PointerEvent , which explain why homeAction is called twice.
The easiest solution is to change the <button> element to another DOM element (i.e. <a> or <span> )
Updated version using the <a> element http://plnkr.co/edit/Nn8CF7TnDKqsJA3unsp6
Another solution would be to check what type of event is dispatched and allow only MouseEvents . You can do this by passing $ event to homeAction and check for the existence of the pointerType property (available only for TouchEvents). Plnkr example: http://plnkr.co/edit/RmVHT1Pf2IeCNdmDH51T
$scope.homeAction = function($event) { if ($event.originalEvent.pointerType) {
source share