Как можно изолировать данные подписки между шаблонами?Метеорная изоляция данных
Для примера - у меня есть одна страница с двумя различными шаблона:
1) список Тема
2) Популярные темы.
У меня есть два разные Meteor.publish и подписки на это.
1) В шаблоне списка тем я отсортировал по CreatedAt-field.
Meteor.subscribe('topics');
Template.topics_main.helpers({
topics:function(){
return Topic.find({},{sort: {createdAt: -1}});
}
});
2) В популярном списке я сортирую данные по рейтингу-поле.
Meteor.subscribe('popularTopics');
Template.top_topics.helpers({
topics:function(){
return Topic.find({}, {
sort: {
views: -1
},
limit: 5
});
}
});
И когда я прокручу список тем, я получу данные из популярных тем. Это не хорошо :) Как я могу изолировать данные, используя два шаблона с разными подписками, но один тип коллекций?
Спасибо за отличный ответ! Проблема в этом случае его мой ORM :) Я использую астрономию.Это будет немного сложнее использовать ваш метод через астрономию :) Но это решение выглядит довольно хорошо :) Действительно, у Meteor нет изоляции решений на уровне шаблона? –
Если вы не можете одновременно просмотреть оба шаблона (например, если они находятся на разных страницах вашего приложения), то использование подписки на уровне шаблона должно быть достаточно хорошим. Поскольку при рендеринге top_topics Topic содержит только популярные темы, то когда этот шаблон уничтожается, подписка прекращается и документы удаляются с клиента. Затем вы можете отображать topic_main, и Тема будет заполнена всеми документами (популярными и непопулярными). – carlevans719
Да, я знаю о разных страницах :) Проблема в том, что они хранятся на одной странице. И, я просто пытаюсь найти правильный путь, без хакса. Таким образом, его вид невозможен без взлома) Полная проблема с изображениями: https://forums.meteor.com/t/how-can-we-isolate-subscribtions-data/28062/3 –