我的胡子模板没有渲染,我不明白为什么不。
var output = Mustache.render('{{#languages}} {{@index}} {{locale}} {{/languages}}', '{"languages" : [ { "locale" : "english", "code" : "en" }, { "locale" : "deutsch", "code" : "de" }, { "locale" : "español", "code" : "es" }, { "locale" : "français", "code" : "fr" } ]}');
此输出为空。我还希望使用每个项目呈现索引。
答案 0 :(得分:3)
第一个问题是你应该传递一个Object作为你的数据,而不是一个字符串。从languages
对象周围删除引号。
第二个问题是Mustache不支持{{@index}}
特殊参考。许多像Mustache一样的模板系统(如Dust.js和Handlebars.js)本身就支持这一点,但在Mustache中,您必须编写一个帮助程序并将其包含在数据中。为此,请参阅该主题的许多其他StackOverflow答案之一,例如this one。
答案 1 :(得分:1)
首先,你要传递一个字符串而不是一个对象作为第二个参数。
答案 2 :(得分:1)
Mustache.render()中的第二个参数是object。你传了一个字符串
Mustache.render('{{#languages}} {{@index}} {{locale}} {{/languages}}', {"languages" : [ { "locale" : "english", "code" : "en" }, { "locale" : "deutsch", "code" : "de" }, { "locale" : "español", "code" : "es" }, { "locale" : "français", "code" : "fr" }, { "locale" : "italiano", "code" : "it" }, { "locale" : "português (Portugal)", "code" : "ptpt" }, { "locale" : "português (Brasil)", "code" : "prbr" }, { "locale" : "Norsk", "code" : "no" }, { "locale" : "日本語", "code" : "jp" }, { "locale" : "中文", "code" : "cn" }, { "locale" : "Русский язык", "code" : "ru" } ]} );