8

我使用 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;

但是当对象是数组时我如何使用它,比如

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

3 回答 3

36

你可以这样做:

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);
于 2012-05-09T16:49:19.360 回答
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;
于 2011-06-09T11:36:59.740 回答
2

你需要做这样的事情:

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

var template= "{{#games}} Player name: {{name}} Type: {{type}}{{/games}}";

var html = Mustache.to_html(template, mygames);
var con = document.getElementById('container');
con.innerHTML = html;

或者简单地遍历 mygames 对象并附加 html

var html="";
var template= "Player name: {{name}} Type: {{type}};"
for (var i=0;i<mygames.length;i++)
{
   html+=Mustache.to_html(template, mygames[i]);
}
var con = document.getElementById('container');
con.innerHTML = html;

希望这可以帮助

于 2011-07-30T06:12:13.010 回答