以此为例: http: //mustache.github.com/#demo,模板和 json 可以在功能上移动到 var:
template = '<h1>{{header}}</h1>{{#items}}{{#first}}<li><strong>{{name}}</strong></li> {{/first}}{{#link}} <li><a href="{{url}}">{{name}}</a></li> {{/link}}{{/items}}{{#empty}} <p>The list is empty.</p>{{/empty}}';
这是事情崩溃的地方:
$.ajax({
url: "must_template.js",
dataType: "html",
success: function(data) {
template = data;
}
});
和
$.ajax({
url: "theJson2.txt",
dataType: "json",
success: function(data) {
json = data;
//json = $.parseJSON(data);
}
});
Chrome 的控制台显示与 var 完全相同的内容,但 Mustache 在输入上中断,因为它们在输入上是“未定义”:
Uncaught TypeError: Cannot call method 'indexOf' of Undefined
我尝试更改数据类型,使用 $.parseJSON 解析它,从外部文件导入模板或 JSON 时没有任何效果。
如果有任何解决 javascript 对象问题的技巧,那也将不胜感激。
更新:代码在这里:http : //dev.plitto.com/sandbox/mustache_riff/index4.html theJson.txt 是 JSON。它被正确拉动。console.log(data.header) 正确返回。must_template.js 是 Mustache 模板文件(从外部拉取将允许不同的主题)。