我正在加载此Handlebars.js模板:
<ul></ul>
使用以下代码使用AJAX
$.ajax({
url : 'collection.handlebars',
success : function (data) {
Handlebars.templates["collection"] = Handlebars.compile(data);
},
async : false
});
模板编译失败,并在浏览器控制台中显示以下消息:
Uncaught Error: You must pass a string to Handlebars.compile. You passed [object Document]
调试后我注意到成功回调中返回的data
是一个HTML文档,而不是一个字符串。但是,如果我将模板更改为:
<ul></ul>  
成功回调中的data
作为字符串接收,一切正常。
我正在使用Handlebars 1.0 RC2和Chrome 24.有什么建议吗?
答案 0 :(得分:1)
您需要指定ajax的数据类型:
$.ajax({
url : 'collection.handlebars',
success : function (data) {
Handlebars.templates["collection"] = Handlebars.compile(data);
},
dataType: "text",
async : false
});