如果对象在数组中,如何使用Mustache.js?

vik*_*ute 8 javascript mustache

我使用Mustache.js多次显示html,这是代码

        var mygame = {
        player:'viking',
        games:[{name:'d1',type:'avg'},{name:'cod7',type:'fps'},{name:'war3',type:'rts'}]
        };
    var template = '{{player}}  is a good guy<br/> <ul>{{#games}}<li>name:{{name}} and type:{{type}} </li>{{/games}}</ul>';
    var html = Mustache.to_html(template, mygame);
    var con = document.getElementById('container');
    con.innerHTML = html;
Run Code Online (Sandbox Code Playgroud)

但是当对象是一个数组时,我该如何使用它呢

var mygames = [{name:'d1',type:'avg'},{name:'cod7',type:'fps'},{name:'war3',type:'rts'}];
Run Code Online (Sandbox Code Playgroud)

gri*_*son 35

你可以这样做:

var model = [{name:'d1',type:'avg'},{name:'cod7',type:'fps'},{name:'war3',type:'rts'}];
var template = '<ul> {{#.}} <li>name:{{name}} and type:{{type}} </li> {{/.}} </ul>';
var html = Mustache.to_html(template, model);
Run Code Online (Sandbox Code Playgroud)

  • 其他答案只是提出了避免这种情况的方法.由于这表明胡子语法实际上允许您使用数组作为数据对象而不将其包裹在绒毛中,这应该是可接受的答案. (2认同)

Nat*_*itt 8

试试这个:

var mygames = [{name:'d1',type:'avg'},{name:'cod7',type:'fps'},{name:'war3',type:'rts'}];

var mygame = {
    player: 'viking',
    games: mygames
}
var template = '{{player}} is a good guy<br /> <ul>{{#games}}<li>name:{{name}} and type:{{type}} </li>{{/games}}</ul>';
var html = Mustache.to_html(template, mygame);
var con = document.getElementById('container');
con.innerHTML = html;
Run Code Online (Sandbox Code Playgroud)

  • Mustache.js不能使用数组作为参数?我不希望将数组包装在一个对象中 (3认同)