把手/模板使用模板作为对象

时间:2014-11-06 11:03:17

标签: javascript handlebars.js template-engine

我正在考虑使用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?

1 个答案:

答案 0 :(得分:3)

我相信您正在寻找this

使用element.insertAdjecentHTML方法追加html字符串,dom应将其转换为一组节点。 所以你可以这样写:

parentDiv.insertAdjacentHTML('beforeend', template(values));