docs: function (tmpCfg, callback) {
              var div = tmpCfg.div;
              // check if the div is still in the dom
              // (because it could be inside a template which was refreshed, so no longer in the dom)
              if (!ariaUtilsDom.isInDom(div)) {
                  this.$callback(callback);
                  return;
              }
              var tplWidget = div.__widget;
              Aria.loadTemplate(tmpCfg, function (args) {
                  // remap widget content
                  if (args.success && tplWidget) {
                      var tplCtxt = args.tplCtxt;
                      var tplCtxtManager = ariaTemplatesTemplateCtxtManager;
                      // TODO: find a cleaner way to do this
                      // as this template is inside a template widget, it is not a root template
                      // (even if we reloaded it with Aria.loadTemplate)
                      // This is necessary for the inspector not to display the template twice:
                      tplCtxtManager.remove(tplCtxt); // remove the template from the list of root templates
                      args.tplCtxt._cfg.isRootTemplate = false; // remove the root template flag
                      tplCtxtManager.add(tplCtxt); // add the template back to the list of templates
                      tplWidget.subTplCtxt = tplCtxt; // add the reference to the template context in the template
                      // widget
                  }
  
                  if (callback != null) {
                      this.$callback(callback);
                  }
              });
          }