Как динамически добавить скрипт «x-tmpl» со страницы скриптов на страницу HTML?

0

Я пытался использовать разные методы:

  • добавить в тело innerHtml часть скрипта
  • создать элемент сценария с типом "x-tmpl"

Но это не сработало. Не могли бы вы мне помочь?

Спасибо.

Теги:
dynamic
dom

1 ответ

0

Я столкнулся с подобной проблемой при попытке динамически загружать шаблоны Handlebars, поэтому вместо того, чтобы вставлять элементы <script> в DOM, я просто хранил скомпилированные шаблоны в глобальном объекте Javascript:

var TEMPLATES = {};    

/**
 * Gets Handlebars template, either from JS if already loaded, or via AJAX request
 * @param name Name of template
 * @param data JSON data for use in template
 * @returns Handlebars template
 */
function get_template(name,data) {
  if(typeof TEMPLATES[name] != 'undefined') {
    return TEMPLATES[name];
  } else {
    $.get(
      TEMPLATE_ROOT + name + '.hb',
      function(template) {
        TEMPLATES[name] = Handlebars.compile(template);
        render_template(name,data);
      }
    );
    return null;
  }
}

Обратите внимание на мой вызов render_template(name,data) после успешной загрузки шаблона. Это просто вызывает мою функцию, чтобы снова попытаться отобразить шаблон, который теперь будет в памяти:

/**
 * Render JSON using Handlebars template
 * @param name Name of Handlebars template
 * @param data JSON data to render
 */
function render_template(name,data){
  var template = get_template(name,data);
  if(template !== null) {
    $('#main').html(template(data.transforms[1].data));
  }
}

Я делаю много предположений о том, что вы пытаетесь сделать, поэтому, надеюсь, это будет полезно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню