我已經開始考慮使用淘汰賽來爲我的團隊使用;到目前爲止,我對這個框架非常滿意,除了它與jQuery模板插件的關係外,它的語法我討厭。另外(更重要的是),我們一直在使用jQote2進行客戶端模板化,所以我想研究創建一個使用它的模板引擎。jQote2淘汰賽模板
我對renderTemplate
函數有困難; jQote2庫似乎不知道如何找到通過參數data
傳入的變量。有沒有人處理過這種事情?我假設它更是一個jQote2怪癖比淘汰賽如何呈現其模板什麼的......
代碼:
jqoteTemplateEngine = function() {
var templates = {};
this.createJavaScriptEvaluatorBlock = function (script) {
return '<%= ' + script + ' %>';
}
this.getTemplateNode = function (template) {
var templateNode = document.getElementById(template);
if (templateNode == null)
throw new Error("Cannot find template with ID of " + template);
return templateNode;
}
this.renderTemplate = function(templateId, data, options) {
var renderedMarkup = jQuery.jqote(templates[templateId], data);
return ko.utils.parseHtmlFragment(renderedMarkup);
}
this.rewriteTemplate = function (template, rewriterCallback) {
var templateNode = this.getTemplateNode(template);
templates[template] = rewriterCallback(templateNode.text);
}
this.isTemplateRewritten = function (templateId) {
return templateId in templates;
}
};
jqoteTemplateEngine.prototype = new ko.templateEngine();
ko.setTemplateEngine(new jqoteTemplateEngine());
,要點是:http://gist.github.com/1341737
優秀和全面的答案 - 非常感謝你。我的問題不在於我構建模板引擎,而在於使用模板本身(具體而言,我並不滿足jQote的期望)。你的例子引起了我的注意。 我將使用較新的模板樣式,但關於控制流綁定的位應該是無價的... – egoodberry