我在我的骨干示例中使用了underscore.js模板库。我的模板如下所示:
<script id="results-template" type="text/template">
<h2><%= title %></h2>
</script>
JSON对象如下所示:
{"src":"placeholder.jpg","title":"an image placeholder","coordinates":[0,0],"tags":["untagged"],"location":"home"}
我试图通过我的模板解析这个对象,但我通过我的控制台得到的错误是:
Uncaught ReferenceError: title is not defined
我做错了什么?现场小提琴就在这里:http://jsfiddle.net/amit_e/muLjV/46/
答案 0 :(得分:8)
你的问题是:
JSON.stringify(myPhoto)
这需要
myPhoto.toJSON()
原因:您的JSON.stringify()
会将整个myPhoto模型作为json 字符串。现在,Backbone有这个函数输出json作为 json对象,所以你可以使用model.toJSON()
更新了jsfiddle:http://jsfiddle.net/saelfaer/muLjV/50/
答案 1 :(得分:1)
如果您只想显示标题,则不需要处理Photo模型的整个JSON。您可以只检索单个属性。
在Render下面就足够了。
render: function(event){
var yourOutput={title:myPhoto.get('title')};
var compiled_template = _.template( $("#results-template").html(),yourOutput);
this.el.html(compiled_template);
}
您当前的JSON对象如下所示。它并不复杂,您可以毫不费力地获得任何标题,src,坐标,标签,位置。
{
"src": "placeholder.jpg",
"title": "an image placeholder",
"coordinates": [0,0],
"tags": ["untagged"],
"location": "home"
}