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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6292107/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-25 20:12:01  来源:igfitidea点击:

How to use Mustache.js if the object is in a array?

javascriptmustache

提问by vikingmute

i use Mustache.js succusefully display the html ,here's the code

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

but how do i use it when the object is a array ,like

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

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

采纳答案by Nathan DeWitt

Try this:

试试这个:

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;

回答by grigson

You can do it like this:

你可以这样做:

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);

回答by Baz1nga

you need to do something like this:

你需要做这样的事情:

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;

or simply loop over mygames object and append the 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;

Hope this helps

希望这可以帮助