code: function applyDateChange() {
      $timeout.flush();
      $material.flushOutstandingAnimations();
  
      // Internally, the calendar sets scrollTop to scroll to the month for a change.
      // The handler for that scroll won't be invoked unless we manually trigger it.
      var activeViewController = calendarMonthController || calendarYearController;
      if (activeViewController) {
        angular.element(activeViewController.calendarScroller).triggerHandler('scroll');
      }
  
      // Need this to handle the nextTick when setting first scroll.
      $timeout.flush();
    }
docs: To apply a change in the date, a scope $apply() AND a manual triggering of animation
  callbacks is necessary.