将绑定应用于文本片段的最佳方法是什么?
我使用以下代码来传递ip:
var textFragment = '<div><p data-bind="text: text"></p></div>',
htmlTemplate = ko.utils.parseHtmlFragment(textFragment);
ko.applyBindings({
text: "text"
}, htmlTemplate[0]);
alert(htmlTemplate[0].innerHTML);
document.getElementById("test").innerHTML = htmlTemplate[0].innerHTML;
(Fiddler)
创建一个dom节点并对其应用abinding,然后将其插入到页面中。我看了抛出淘汰代码并看到,有几个函数用于渲染模板,我想知道这些方法是否会更好。我试图使用它们,但结果代码更长,并没有按预期工作。
此致 斯蒂芬
(不是:这只是一个演示我问题的简单演示,我在自定义绑定处理程序中使用它。)
答案 0 :(得分:1)
听起来想要覆盖默认的源引擎。
//string template source engine
var stringTemplateSource = function (template) {
this.template = template;
};
stringTemplateSource.prototype.text = function () {
return this.template;
};
var stringTemplateEngine = new ko.nativeTemplateEngine();
stringTemplateEngine.makeTemplateSource = function (template) {
return new stringTemplateSource(template);
};
然后您可以将其用作默认引擎,如
ko.setTemplateEngine(stringTemplateEngine);
或者将其用于自定义绑定中的特定模板,例如
var myTemplate = '<div><p data-bind="text: text"></p></div>';
ko.renderTemplate(myTemplate, bindingContext.createChildContext(valueAccessor()), { templateEngine: stringTemplateEngine }, element, "replaceChildren");