Mustache.js每个循环都不起作用

时间:2015-03-25 16:52:58

标签: javascript mustache

我的胡子模板没有渲染,我不明白为什么不。

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" } ]}');

此输出为空。我还希望使用每个项目呈现索引。

Demo

3 个答案:

答案 0 :(得分:3)

第一个问题是你应该传递一个Object作为你的数据,而不是一个字符串。从languages对象周围删除引号。

第二个问题是Mustache不支持{{@index}}特殊参考。许多像Mustache一样的模板系统(如Dust.jsHandlebars.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" } ]} );