Jquery 无法在主干+把手中显示外部JSON数据
我正在使用Thorax主干+把手开发一个应用程序,并尝试加载一个外部JSON文件,该文件将在模板中使用。与咖啡脚本以及工作 我的测试JSON数据:Jquery 无法在主干+把手中显示外部JSON数据,jquery,json,backbone.js,coffeescript,handlebars.js,Jquery,Json,Backbone.js,Coffeescript,Handlebars.js,我正在使用Thorax主干+把手开发一个应用程序,并尝试加载一个外部JSON文件,该文件将在模板中使用。与咖啡脚本以及工作 我的测试JSON数据: { "name" : "John Doe" } 我的模板: Thorax.templates['space'] = Handlebars.compile """ <h2>Hello, {{name}}.</h2> """ 整个过程一直持续到在模板中实际显示数据为止。所以我得到的只是你好我试着按照说明操作,并将JS
{
"name" : "John Doe"
}
我的模板:
Thorax.templates['space'] = Handlebars.compile """
<h2>Hello, {{name}}.</h2>
"""
整个过程一直持续到在模板中实际显示数据为止。所以我得到的只是你好我试着按照说明操作,并将JSON数据分配给一个对象,但没有成功。在您询问之前,我已经对console.log'ed json进行了检查,以确保json数据实际上正在通过。。是的
有什么建议吗?如果json真的是{name:'John Doe'}对象,那么说@templatejson应该有效。但看起来您在JSON参数中得到的是JSON字符串,而不是已解析的对象。这可以解释您在console.log中看到的结果,控制台中的输出看起来更像
console.log("{\n\"name\" : \"John Doe\"\n}")
会产生什么
console.log({"name": "John Doe"})
会产生
也许您的服务器返回的JSON内容类型错误,所以在调用成功处理程序之前,没有人知道应该执行JSON。尝试修复服务器代码,使其包含一个内容类型:application/json头;然后你可以说:
success: (json) =>
$(app.appContainer).html(@template(json))
它应该会起作用。如果您不能做到这一点,那么作为最后手段,您可以自己解析JSON:
success: (json) =>
json = JSON.parse(json)
$(app.appContainer).html(@template(json))
你不想说@templatejson而不是将传入的{name:'John Doe'}包装到另一个对象中吗?这是有道理的,我之所以这么做是因为我在这里找到了答案:尽管我按照你建议的方式尝试了,但没有运气either@templatejson除非有人在你背后捣乱,否则应该有用。。绝对不能让它像那样工作。我怕有人在胡闹。如果有帮助的话,我很乐意发布更多的代码?真的想弄明白这一点:你确定json是一个对象吗?只是黑暗中的一个镜头,看起来对我来说应该有用。
success: (json) =>
json = JSON.parse(json)
$(app.appContainer).html(@template(json))