You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

mustache.js:如何在可枚举对象迭代中访问外层变量

在Mustache迭代子对象时访问父级/根级属性的解决办法

嘿,这个问题在使用Mustache模板引擎时挺常见的——当你迭代employees数组时,当前上下文会切换到每个员工对象,自然就没法直接访问上层data里的label属性了。我给你两种靠谱的解决方式:

方法一:使用父级上下文引用 ../

../ 是Mustache里用来回到上一级上下文的语法,在迭代employees时,用它就能直接访问到外层data对象的属性:

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

方法二:使用根上下文引用 @root

如果你的Mustache版本比较新(比如v1.0+),可以用@root直接指向最顶层的data对象,不管嵌套多少层,都能直接访问根属性,这种方式在多层嵌套场景下更清晰:

var data = { employees: [{ firstName: "Christophe", lastName: "Coenraets" }], label: "red" };
var template = "Employees:<ul>{{#employees}}" + 
               "<li>{{firstName}} {{lastName}} " + 
               "the label is: {{@root.label}}" + 
               "</li>" + 
               "{{/employees}}</ul>";

小提示

如果你的Mustache版本比较旧,可能只支持../这种写法,建议先确认一下你使用的版本哦。

内容的提问来源于stack exchange,提问作者Shahar Shokrani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:36:23