Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有可能使灰尘模板循环并交错来自两个不同阵列的元素?_Javascript_Json_Dust.js - Fatal编程技术网

Javascript 是否有可能使灰尘模板循环并交错来自两个不同阵列的元素?

Javascript 是否有可能使灰尘模板循环并交错来自两个不同阵列的元素?,javascript,json,dust.js,Javascript,Json,Dust.js,我试图在Dust中创建一个模板页,该模板页包含一个表,在表的一个单元格中同时显示delta_时间和经过的_时间。 delta_时间和经过的_时间的数据都保存在单独的数组中 我遇到的问题是,我找不到是否可以从dust模板中的不同数组上下文中访问另一个数组上下文 页面的JSON数据是 { "state": { "objects": [ { "id": "1", "Objectcolour": "#0000FF",

我试图在Dust中创建一个模板页,该模板页包含一个表,在表的一个单元格中同时显示delta_时间和经过的_时间。 delta_时间和经过的_时间的数据都保存在单独的数组中

我遇到的问题是,我找不到是否可以从dust模板中的不同数组上下文中访问另一个数组上下文

页面的JSON数据是

{
"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中灰尘的副本,以保持自己的最新状态。