jQuery.handlebars模板不在动态DOM附加上呈现

时间:2014-07-21 07:22:43

标签: javascript jquery html5 handlebars.js templating-engine

我一直在使用动态DOM追加来初始化我的应用程序,使用jQuery.handlebars作为模板库。但是jQuery.handlebars的问题在于它不会将模板呈现给动态调用的DOM。实施例

   $(document).ready(function(){
         $('body').append('<div id="content"></div>');
         $('#content').render('default', {

         });
   )};

默认是模板文件default.hbs,所有模板路径都已正确初始化。

但它适用于

的情况

的index.html

    <div id="#content"></div>

jQuery文件

    $('#content').render('default', {

    });

jQuery.handlebars的另一个问题是它不会使用jQuery在模板中追加任何元素。实施例

default.hbs

    <div id="#append-content"></div>

jQuery代码

     $('#append-content").html('Hi');

但内容&#34;嗨&#34;没有出现。

有点令人困惑,请指教,如果它的错误或任何不赞成使用jQuery.handlebars,请建议一个新的模板库。

1 个答案:

答案 0 :(得分:1)

jquery.handlebars渲染方法是异步的。您正在尝试在呈现完成之前附加到容器。渲染方法触发了一个'render.handlebars&#39;完成渲染时的事件。在回调中进行DOM操作。

$('#content').render('template', {

}).on('render.handlebars', function() {
  $('#append-content').html("hello");
});