2016-03-26 3 views
0

Это мой код:Метеор Spacebars - {{}} #each Params

HTML

карты 1:

<!-- Shopping list --> 
<div id='shopping' class='card'> 
    {{#each task}} 
    <ul class="card__task"> 
    <li>{{taskText}}</li> 
    <i class="fa fa-minus delete-task"></i> 
    </ul> 
    {{/each}} 
</div> 

Card 2:

<!-- Medicine list --> 
<div id='medicine' class='card'> 
    {{#each task}} 
    <ul class="card__task"> 
    <li>{{taskText}}</li> 
    <i class="fa fa-minus delete-task"></i> 
    </ul> 
    {{/each}} 
</div> 

template.helper

task: function() { 
    return Tasks.find({}, { 
     sort: { 
     createdAt: -1 
     } 
    }); 
    } 

задачи сбора пример

Ex.1:

... 
    "taskGroup": "medicine", 
    "taskText": "medicine task 1", 
    ... 

Ex.2:

... 
    "taskGroup": "shopping", 
    "taskText": "shopping task 1", 
    ... 

Итак, у меня есть коллекция, в которой хранятся задачи с taskGroup, соответствующими textarea input id. На данный момент each выполняет итерацию по каждой задаче, которая у меня есть в моем tasks collection, и эти две карты показывают все задачи.

Вопрос:

Как сказать each блок только перебирать задачи, которые taskGroup равных эту карту id?

Что-то вроде:

task: function() { 
    return Tasks.find({ 
    taskGroup: *the card where each block is located*.getAttribute("id"); 
    }, { 
     sort: { 
     createdAt: -1 
     } 
    }); 
    } 

ответ

1

Вы можете создать взрывную помощник, который делает фильтр по taskGroup

tasks: function(taskGroup) { 
return Tasks.find({ 
taskGroup: taskGroup; 
}, { 
    sort: { 
    createdAt: -1 
    } 
}); 

}

Таким образом, вы можете назвать его по шаблону, как это

{{#each tasks 'medicine'}} 
... 
{{/each}} 
+0

Thank yo u очень много! Это сработало! – Edgar

Смежные вопросы