Javascript 如何动态添加一个";x-tmpl";从脚本页面到HTML页面的脚本?

Javascript 如何动态添加一个";x-tmpl";从脚本页面到HTML页面的脚本?,javascript,jquery,html,dom,dynamic,Javascript,Jquery,Html,Dom,Dynamic,我尝试了不同的方法: 外接程序主体innerHtml脚本部分 创建类型为“x-tmpl”的脚本元素 但这并不奏效。你能帮帮我吗 谢谢。我在尝试动态加载把手模板时遇到了类似的问题,因此我没有尝试将元素插入DOM,而是将编译后的模板存储到全局Javascript对象中: var TEMPLATES = {}; /** * Gets Handlebars template, either from JS if already loaded, or via AJAX request *

我尝试了不同的方法:

  • 外接程序主体innerHtml脚本部分
  • 创建类型为“x-tmpl”的脚本元素
但这并不奏效。你能帮帮我吗


谢谢。

我在尝试动态加载把手模板时遇到了类似的问题,因此我没有尝试将
元素插入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\u模板(名称、数据)
。这只是调用我的函数再次尝试呈现模板,模板现在将保存在内存中:

/**
 * 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));
  }
}
我对你要做的事情做了很多假设,希望这会有所帮助