js模板字符串自定义类名_knockout.js – 自定义绑定处理程序,从字符串模板渲染绑定...

我使用应该是可选的行模板进行自定义绑定.如果用户没有提供模板ID我想使用默认值,但它不存在于body中的script标签中,它只是options literal上的一个字符串.

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

默认模板应该很简单

我已经尝试过ko.renderTemplate,但它只需要id到脚本标签

ko.renderTemplate(template, bindingContext.createChildContext(data), null, row, "replaceChildren");

更新

刚收到有关此问题的通知,并看到有人建议将模板注入dom并使用标准脚本标记提供程序.但是这并没有考虑到用户可以覆盖默认模板源(使用单个plage应用程序的常见方案.我使用这种方式,首先尝试默认模板提供程序,然后回退到字符串模板源,如下所示

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)

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值