2015-05-30 2 views
0

Пусть говорят, что мы должны показать отфильтрованные задачи на взгляд, первый шаг, который мы получили все список задач, купить публикации/подписки:Как фильтровать Подписанные данные радиально-Метеор способ

публикации:

Meteor.publish("tasks", function(options){ 
    return Tasks.find(options); 
}); 

Подписка на новости:

var allTasks = $meteor.collection(Tasks).subscribe('tasks', {}); 

А теперь, давайте говорить, что я должен видеть в $ объеме только задачи, которые имеют «активный» набор переменных в действительности.

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

Как заменить getFilteredTasks (Все задачи, {активные: истинно}), чтобы получить задачи, которые имеют только активный == истинные переменные?

Я знаю, что мы можем установить «опции» при подписке на задачи, как:

{active: true} 

Но это не помогает решить проблему. Цель состоит в том, чтобы подписываться только один раз и позже использовать фильтры, чтобы отображать только часть задач.

Я до сих пор не закончил Angular-Meteor tutorial, так что это может быть объяснено позже, если вы можете направить меня на правильный учебник, это значительно ускорит мое обучение.

Заранее спасибо.

ответ

2

OK. Похоже, решение находится на угловой стороне. Так в контроллере мы получаем все задачи:

$scope.active_tasks = $meteor.collection(Tasks); 

А вид сбоку мы фильтруем их:

<input ng-model="freeText"> 
<tr ng-repeat="task in active_tasks | filter:freeText "> 
    <td>{{ task }}</td> 
</tr> 

:)

1

решение @pumych является допустимым. Вы можете также использовать

$scope.$meteorSubscribe ('tasks'); 
$scope.activeTasks = $meteor.collection (function(){ 
// active tasks will only be the filtered result 
return Tasks.find (active: true) ; 
}); 

Читайте о потоках данных в угловом Метеоре здесь https://medium.com/@tally_b/coll-pub-sub-with-angular-meteor-cb13fe48f5701. Ознакомьтесь с примером и кодом github для получения более подробной информации.