我有一个包含特殊字符的JSON文件,我想用HandlebarsJS
显示JSON,但我无法让它工作:
JSON结构是这样的:
{
"feed" : {
"entry" : {
"title": {
"$t" : "THIS TITLE I WANT"
}
}
}
我使用BackboneJS
,所以在我的收藏中我做:
parse: function(data) {
return data.feed.entry
}
所以我试着做
{{#each this}}
<p>{{title.$t}}</p>
{{/each}}
但它不起作用!?!?!
有人可以告诉我出了什么问题吗?
答案 0 :(得分:0)
实际上,用户的建议已经删除了他的回答是对的!!
{{#each this}}
<p>{{title.[$t]}}</p>
{{/each}}
让它发挥作用!所以,如果你读到这个,再次发布你的答案,我会接受它!
答案 1 :(得分:0)
你几乎就在那里,但Handlebars以不同方式处理属性上的循环。
基本上发生的事情是,在处理对象时,每个循环中存在this
的隐式转换。
{{#each this}}
//Here we think that **this** refers to an entry, but's it's not.
//Cue implicit context switch to point **this** to the title object.
//"unpack" it, and use the keys you're after.
<p>{{$t}}</p> //voilà, we get the value.
{{/each}}
一个非常简单的例子(JsBin here):
<script id="cool" type="text/x-handlebars-template">
{{#each this}}
<p>{{socool}}</p>
{{/each}}
</script>
var cool = {cool: {'socool': "brrr!!!" }};
var compiled = Handlebars.compile(document.getElementById("cool").innerHTML);
console.log(compiled(cool));