Реактивность только на стороне клиента с Метеором?
У меня есть коллекция, опубликованная на сервере и автоматически подписанная на клиенте. Я'Я хотел бы установитьвыбран» элемента в сеансе и обновите шаблон, чтобы отобразить только выбранный элемент, но, похоже, это можно сделать только с помощью туда-обратно на сервер (что совершенно не нужно).
Общие:
var Missions = new Meteor.Collection('missions');
Клиент:
Template.missionList.missions = function() {
var currMission = Session.get('selectedMission');
var searchMission = {};
if(currMission)
{
searchMission['_id'] = currMission;
}
return Missions.find(searchMission);
};
Template.missionList.events({
'click div.mission': function (e, t) {
Session.set('selectedMission',
this._id == Session.get('selectedMission') ? null : this._id
);
}
});
Template.mission.isSelected = function() {
return this._id == Session.get('selectedMission');
};
Meteor.autosubscribe(function () {
Meteor.subscribe("missions");
});
Сервер:
Meteor.publish('missions', function() {
// there are really some filters here, but removed for simplicity
return Missions.find();
});
Шаблон:
{{#each missions}}
{{> mission}}
{{/each}}
details
Мое требование дляMissions.find()
вTemplate.missionList.missions
фильтровать кэшированные результаты на стороне клиента, а не повторно запрашивать с сервера, но я могуКажется, я не нашел флаг или настройки, которые позволили бы мне сказать minimongo использовать только доступные в настоящее время данные.
Я также не совсем уверен, если это то, что я должен делать, я начал с использования jQuery, чтобы скрыть невыбранные миссии, но обдумал Meteor, и вполне естественно использовать данные и реактивность для управления выбором / локальным -Фильтрация.
Есть ли способ избежать обхода или я просто неправильно его использую?