mustache.js:具有外部变量的可枚举对象

mustache.js: Enumerable objects with outer variable

我学习了 this 很棒的教程。

var data = {
    employees: [
    {   firstName: "Christophe",
        lastName: "Coenraets"},
    {   firstName: "John",
        lastName: "Smith"}
    ]}; 
var template = "Employees:<ul>{{#employees}}" +
                            "<li>{{firstName}} {{lastName}}</li>" +
                            "{{/employees}}</ul>"; 
var html = Mustache.to_html(template, data); 
$('#sampleArea').html(html);

我的问题是如何迭代一些 属性 属于 employees 对象中的数据对象?

这是一个例子,我想在 </li> 标签结束前在每个 employees 旁边打印 label

var data = {
    employees: 
    [{
        firstName: "Christophe",
        lastName: "Coenraets"
    }],
    label: "red"
};

var template = "Employees:<ul>{{#employees}}" +
                            "<li>{{firstName}} {{lastName}}" + 
                            "the label is: {{label}}" +
                            "</li>" +
                            "{{/employees}}</ul>"; 

但是上面的例子显然是行不通的,因为 labeldata 的 属性,而不是 employees.

的 属性

你可以试试这个:使用“../”更上一层楼

var template = "Employees:<ul>{{#employees}}" +
                            "<li>{{firstName}} {{lastName}}" + 
                            "the label is: {{../label}}" +
                            "</li>" +
                            "{{/employees}}</ul>"; 

另一个解决方案是像这样渲染整个节点:

var template = "{{#data}}Employees:<ul>{{#data.employees}}" +
                                "<li>{{data.employees.firstName}} {{data.employees.lastName}}" + 
                                "the label is: {{data.label}}" +
                                "</li>" +
                                "{{/data.employees}}</ul>{{/data}}"