我正在考虑使用Handlbars模板化我的项目。 把手可以返回一个DOM对象,还是只能返回HTML。 例如,如果我想将一个孩子附加到DIV,我可以调用DIV.appendChild(myTemplate); 像这样:
var parentDiv = document.getElementById("parentDiv");
for(var i = 0;i<myData.length;i++){
var source = $("#my-template").html();
var template = Handlebars.compile(source);
var values = myData[i];
parentDiv.appendChild(template(values));
}
从这里我得到一个arg 1的appendChild不是抛出的对象错误,因为渲染的模板是html / string。
我可以在把手中调用一些东西来制作物体吗?
我是否试图将模板化得太过分,或者是否存在另一种以这种方式运行的解决方案,或者我是不是手动编写了createElement?
答案 0 :(得分:3)
我相信您正在寻找this
使用element.insertAdjecentHTML方法追加html字符串,dom应将其转换为一组节点。 所以你可以这样写:
parentDiv.insertAdjacentHTML('beforeend', template(values));