【发布时间】:2011-12-22 22:33:33
【问题描述】:
我正在使用 icanhaz.js 和 mustache 加载模板,我正在使用以下方法按需加载 mustache 模板:
loadTemplate: function(name, callback) {
if (!ich.templates[name+"_template"]) {
jQuery.get("/js/templates/"+name+".mustache", function(data) {
window.ich.addTemplate(name+"_template", data);
callback();
});
} else {
callback();
}
}
检查在调试器中返回的数据变量,但是,有时返回的是一个 Document 对象,而不是我可以使用的原始字符串。我有时会说,因为如果模板文件中的 html 在文件顶部没有嵌套的 DOM 元素,则模板会根据需要加载。这是一种非常奇怪的行为,我希望得到一些帮助来解释。
所以,例如模板文件:
<div>
<div>My name is {{name}}</div>
</div>
加载时会作为 Document 对象返回。
然而,这个模板文件:
<div></div>
<div>
<div>My name is {{name}}</div>
</div>
根据需要作为原始字符串返回。
我不知道为什么让没有任何子级的顶级 div 会对被标识为 Document 的模板与字符串产生影响。有什么想法吗?
【问题讨论】:
标签: jquery lazy-loading mustache icanhaz.js