流星循环和条件数据

Meteor loops and conditional data

考虑到一年的月份和返回的数据可能仅适用于特定月份,请问我如何在 blaze 中呈现它,同时在不存在适用记录的情况下呈现 0?

我在做什么:

{{#each month in months}}
  {{#each recordDataset }}
    {#if equals recordDataset.period month}<td>{{ recordDataset.value}}</td>{/if}
  {{/each}}
{{/each}}

这个嵌套循环显然 returns 太多了,因为它循环遍历了 2 个独立的数据集。我当然可以考虑如何用其他语言做到这一点,但不是在 blaze 中。

例如,理想的情况是:

{{#each month in months}}
  {{#if recordSet['month'] == month}}
    <td>{{ recordDataset.value}}</td>
  {{else}}
    <td>&nbsp;</td>
  {{/if}}
{{/each}}

但我不知道如何才能做到这一点。

如有任何帮助,我们将不胜感激。

根据您的代码示例,recordDataSet 有一个 属性 month,您想将其与 months 中的每个 month 进行比较。鉴于此,您可以创建一个等号运算符并将其用于比较:

Template.registerHelper( 'equals', ( v1, v2 ) => {
  return v1 === v2;
});

{{#each month in months}}
  {{#if equals recordDataSet.month month}}
    <td>{{recordDataset.month}}</td>
  {{else}}
    <td>0</td>
  {{/if}}
{{/each}}

由于我没有你的recordDataSet的schema,你得根据自己的需要进行调整。