是否有任何方法可以在敲门声中使用html字符串进行渲染?
即
var html = ko.renderFromString('<p data-bind="text:name"></p>', {name:"Fred"});
这对我正在做的事情非常方便。
$(".container").append(html);
$(".container").on("click", "p", function(e){
console.log(ko.dataFor(this));});
答案 0 :(得分:7)
如果你不愿意搞乱模板引擎,试试这个:
ko.renderFromString = function (html, data)
{
var node = new DOMParser().parseFromString(html, "text/html");
this.applyBindings(data, node.body);
var res = node.body.innerHTML.toString();
this.cleanNode(node);
delete node;
return res;
};
它基本上从你的Html字符串创建一个临时(内存)DOM元素,绑定你的数据,返回绑定元素的innerHTML
然后丢弃它。