Javascript 是否有可能使灰尘模板循环并交错来自两个不同阵列的元素?
我试图在Dust中创建一个模板页,该模板页包含一个表,在表的一个单元格中同时显示delta_时间和经过的_时间。 delta_时间和经过的_时间的数据都保存在单独的数组中 我遇到的问题是,我找不到是否可以从dust模板中的不同数组上下文中访问另一个数组上下文 页面的JSON数据是Javascript 是否有可能使灰尘模板循环并交错来自两个不同阵列的元素?,javascript,json,dust.js,Javascript,Json,Dust.js,我试图在Dust中创建一个模板页,该模板页包含一个表,在表的一个单元格中同时显示delta_时间和经过的_时间。 delta_时间和经过的_时间的数据都保存在单独的数组中 我遇到的问题是,我找不到是否可以从dust模板中的不同数组上下文中访问另一个数组上下文 页面的JSON数据是 { "state": { "objects": [ { "id": "1", "Objectcolour": "#0000FF",
{
"state": {
"objects": [
{
"id": "1",
"Objectcolour": "#0000FF",
"delta_times": [0, 7600, 8000, 35400, -300, -260],
"elapsed_times": [1384342615000, 1384342622600, 1384342630600, 1384342666000, 1384342669000, 1384342671600]
},
{
"id": "2",
"Objectcolour": "#00FF00",
"delta_times": [0, 7600, 8000, 35400, -300, -260],
"elapsed_times": [1384342615000, 1384342622600, 1384342630600, 1384342666000, 1384342669000, 1384342671600]
}
]
}
}
灰尘模板当前
{#state.objects}
<table>
<tr>
<th>ID</th>
{#distances}
<th>{split_distances}</th>
{/distances}
</tr>
<tr>
<th>{id}</th>
{#elapsed_times}
<th>{.}
--Need to add some way to access {#delta_times} here!
</th>
{/elapsed_times}
</tr>
</table>
{/state.objects}
{#state.objects}
身份证件
{#距离}
{分割距离}
{/距离}
{id}
{#过去的时间}
{.}
--需要在这里添加一些访问{#delta_times}的方法!
{/eassed_times}
{/state.objects}
我希望最后一张桌子是这样的
<table>
<tr>
<th> ID </th>
<th> 0m </th>
<th> 10m </th>
<th> 20m </th>
<th> 30m </th>
<th> 40m </th>
<th> 50m </th>
</tr>
<tr>
<th> 1 </th>
<th> 11:36:55.0, </th>
<th> 11:37:02.6, + 7.6</th>
<th> 11:37:10.6, + 8.0 </th>
<th> 11:37:46.0, + 35.4</th>
<th> 11:37:49.0, - 3.0</th>
<th> 11:37:51.6, - 2.6 </th>
</tr>
<tr>
<th> 2 </th>
<th> 11:36:55.0, </th>
<th> 11:37:02.6, + 7.6</th>
<th> 11:37:10.6, + 8.0 </th>
<th> 11:37:46.0, + 35.4</th>
<th> 11:37:49.0, - 3.0</th>
<th> 11:37:51.6, - 2.6 </th>
</tr>
</table>
身份证件
0米
10米
20米
30米
40米
50米
1.
11:36:55.0,
11:37:02.6, + 7.6
11:37:10.6, + 8.0
11:37:46.0, + 35.4
11:37:49.0, - 3.0
11:37:51.6, - 2.6
2.
11:36:55.0,
11:37:02.6, + 7.6
11:37:10.6, + 8.0
11:37:46.0, + 35.4
11:37:49.0, - 3.0
11:37:51.6, - 2.6
我缩减了上面的示例代码以显示问题所在,因此我删除了所有用于正确显示数字的辅助工具,以及创建此表所需的一些其他JSON
目前,我能看到的解决这个问题的唯一方法是将JSON代码重新映射到不同的结构中,将两个数组连接到一个结构中。是否有办法在灰尘模板中解决此问题?谢谢。在您的评论中添加此代码可以通过比较两个数组的索引来解决问题。当索引相等时,将输出分割
{#delta_times i=$idx}
{@eq key=$idx value=i}+ {.}{/eq}
{/delta_times}
然而,这很难看,在我看来,编写一个小的Dust上下文帮助程序来为您进行比较和输出会更好。这将使您的模板保持轻量级且易于理解。使用@eq过滤器的解决方案不适用于Ruby on Rails Dust Rails gem中提供的Dust版本。因为您不能拥有值为0的关键点。这个gem使用的是原来的dust.js分支,而不是当前的linkedin分支。啊,那真是太旧了。。。我甚至不知道有一个gem,也许我们可以帮助更新它。顺便说一句,你可以手动更新gem中灰尘的副本,以保持自己的最新状态。