我一直在使用动态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,请建议一个新的模板库。
答案 0 :(得分:1)
jquery.handlebars渲染方法是异步的。您正在尝试在呈现完成之前附加到容器。渲染方法触发了一个'render.handlebars&#39;完成渲染时的事件。在回调中进行DOM操作。
$('#content').render('template', {
}).on('render.handlebars', function() {
$('#append-content').html("hello");
});