2016-02-19 9 views
0

Учитывая, что месяцы и данные, которые были возвращены, могут применяться только к конкретным месяцам, как я могу сделать это в режиме пламени, но также сделать 0, если соответствующая запись не существует?Метеорные петли и условные данные

То, что я работаю с:

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

Этот вложенный цикл, очевидно, возвращает слишком много, потому что цикл по 2 отдельных наборов данных. Я могу думать, как это делать на других языках, но не в пламени.

Например, что было бы идеально было бы:

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

Но я не понимаю, как я могу добиться этого.

Любая помощь была бы чрезвычайно оценена.

+0

попытайтесь переместить всю логику в JS – imkost

+0

Можете ли вы добавить еще какой-нибудь код о recordDataset. Я могу помочь/предложить вам, но я точно не получил то, что вам нужно. – Kishor

ответ

1

На основании вашего кода, recordDataSet есть свойство month которое вы хотите сравнить с каждым month в months. Учитывая, что вы можете просто создать равен оператору и использовать его для сравнения:

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, вы должны настроить в соответствии с вашими потребностями.