是否可以在dust.js 中实现可变间接 - 因此能够使用类似地图的功能?
想象一下,我有以下上下文要传递给 Dust:
{
"keys": [ "Foo", "Bar", "Baz" ],
"data": [{
"date": "20130101",
"values": {
"Foo": 1,
"Bar": 2,
"Baz": 3
}
}, {
"date": "20130102",
"values": {
"Foo": 4,
"Bar": 5,
"Baz": 6
}
}]
}
我想实现以下输出(它实际上是一个表格,但为了简洁起见,我跳过了<tr><td>
标签,并用空格和换行符替换了它们):
Date Foo Bar Baz
20130101 1 2 3
20130102 4 5 6
我不确定如何遍历该keys
属性,并使用每个值x
来查找data[i].values[x]
. 我可以通过对键进行硬编码来获得所需的输出:
Date{~s}
{#keys}
{.}{~s}
{/keys}
{~n}
{#data}
{date}{~s}
{values.Foo}{~s}
{values.Bar}{~s}
{values.Baz}{~s}
{~n}
{/data}
但密钥将动态确定,因此我无法将它们硬编码到模板中。有没有办法用类似以下的内容替换说values.Foo
等的行:
{#data}
{date}{~s}
{#keys outerMap=values}
{outerMap.{.}}{~s}
{/keys}
{~n}
{/data}
这不像书面的那样工作;我可以捕获{.}
(当前键的值)的输出并动态地将其用作(部分)要解析的属性名称吗?