code: function watchAsyncLoad() {
          if (opts.loadingAsync && !opts.isRemoved) {
            scope.$$loadingAsyncDone = false;
  
            $q.when(opts.loadingAsync)
              .then(function() {
                scope.$$loadingAsyncDone = true;
                delete opts.loadingAsync;
              }).then(function() {
                $$rAF(positionAndFocusMenu);
              });
          }
        }
docs: If asynchronously loading, watch and update internal
  '$$loadingAsyncDone' flag