流星循环和条件数据
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> </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,你得根据自己的需要进行调整。
考虑到一年的月份和返回的数据可能仅适用于特定月份,请问我如何在 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> </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,你得根据自己的需要进行调整。