gpt4 book ai didi

knockout.js - 自定义绑定(bind)处理程序,从字符串模板呈现绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 03:02:53 26 4
gpt4 key购买 nike

我使用应该是可选的行模板进行自定义绑定(bind)。如果用户不提供模板 id,我想使用默认的,但它不在正文中的脚本标记中,它只是选项文字上的字符串。

如何使用字符串作为模板?

默认模板应该很简单,就像这样

<span data-bind="text: name"></span>

我已经尝试过 ko.renderTemplate 但它只需要 id 来编写标签
ko.renderTemplate(template, bindingContext.createChildContext(data), null, row, "replaceChildren");

更新
刚收到关于这个问题的通知,看到有人建议将模板注入(inject) dom 并使用标准脚本标签提供程序。但这并没有考虑到用户可以覆盖默认模板源(单板应用程序的常见场景。我使用这种方式,首先尝试默认模板提供程序,然后像这样回退到字符串模板源
var engines: {}
var renderTemplate = function (element, template, data, bindingContext) {
var engine = engines[template];

var success = false;
do {
try {
ko.renderTemplate(template, bindingContext.createChildContext(data), engine, element, "replaceChildren");
success = true;
engines[template] = engine;
} catch(err) {
if (engine != null)
throw "Template engine not found";

engine = { templateEngine: stringTemplateEngine };
}

} while (!success)
};

完整代码和 stringTemplateEngine 代码可以在这里找到
https://github.com/AndersMalmgren/Knockout.Combobox/blob/master/src/knockout.combobox.js#L297

最佳答案

要从字符串呈现模板,您需要编写自定义模板源,如 here. 所述。

希望这可以帮助。

关于knockout.js - 自定义绑定(bind)处理程序,从字符串模板呈现绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10834641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com