HandlebarsJS - 带有特殊字符的JSON

时间:2014-06-30 10:03:51

标签: json backbone.js handlebars.js

我有一个包含特殊字符的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}}

但它不起作用!?!?!

有人可以告诉我出了什么问题吗?

2 个答案:

答案 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));