ng-blur is not called from a function triggered by ng-keyup

so I have a ng-blur function that correctly fires if I do this

  $scope.disableReturnButton = function($event){
    document.onkeyup=function(e) {

        if(e.which == 13){

          $event.target.blur();
          return false;
        }
    }
  }

however if I try to set the keyup event on the element only, it doesn't seem to trigger ng-blur when the blur event happens

  $scope.disableReturnButton = function($event){

    if($event.which == 13){
      $event.target.blur();// this blurs the element but doesn't trigger the ng-blur
      return false;
    }

  }

here's the markup

<span contenteditable="true" class="blanks" 
  ng-blur="blurredWhy($event)"
  ng-focus="focusedWhy($event)" 
  ng-bind="data.why" 
  ng-keyup="disableReturnButton($event)"></span>

If you use return false; in the event handler, with jQuery it will stop propagation and stop other events from firing in the chain. Since Angular uses jQuery lite (or you have jQuery full as well on the page) returning false will kill upstream events.

The first example would work because it uses the document.onkeyup which registers the event listener outside of jQuery.

See event.preventDefault() vs. return false