我正在使用 PHP 后端、Backbone.js 和 Handlebars.js。我的javascript请求数据,并且成功返回JSON数据(json_encode)。
当我将此 JSON 数据提供给 Handlebars 模板时,它没有显示。我意识到我的 JSON 对象前面和后面的方括号被 Handlebars.js “不喜欢”并且没有显示。看看下面的代码。
var ArticleListView = Backbone.View.extend(
{
el: $('#main'),
render: function()
{
var template = Handlebars.compile($("#articles_hb").html());
$(this.el).html(template([{"articles":[{"title" : "1"}, {"title" : "2"}]}]));
return this;
}
});
现在,如果我把括号去掉,它就可以正常工作了。这是怎么回事?为什么首先要使用方括号?我该如何摆脱它们?
最佳答案
调用 Handlebars 来循环访问集合的输出是完全合理的。 此外,对于 View 中的数据处理来说,数组并不是一个糟糕的设计决策。
Handlebars 有一种特殊的语法来处理数字或符号标识符,as described here 。因此,更正确的答案是 Handlebars 可以访问模板中的数组,如下所示:
{{people.attributes.[0]}} // akin to people.attributes[0]
{{people.attributes.[1]}} // akin to people.attributes[1]
输入:mails:[{headers: {subject: ["Hello Darling", "...another"]}}, ...more ]
<ul>
{{#each mails}}
<li>.
{{headers.subject.[0]}}
</li>
{{/each}}
</ul>
关于javascript - Handlebars.js 不喜欢前面的方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7344132/