私は、サーバーに公開されたコレクションをクライアントに自動登録しています。私はセッションで '選択'項目を設定し、選択された項目だけを表示するテンプレートの更新をしたいと思いますが、これはサーバーへのラウンドトリップでしか行えないようです(全く不要です)。メテオールとのクライアント側の反応性?
共通:
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();
});
テンプレート:
<template name="missionList">
<div class="missionList">
{{#each missions}}
{{> mission}}
{{/each}}
</div>
</template>
<template name="mission">
<div class="mission{{#if isSelected}} selected{{/if}}">details</div>
</template>
私の必要条件は、Template.missionList.missions
のMissions.find()
は、サーバーからの再要求ではなく、クライアント側のキャッシュ結果をフィルタリングすることですが、フラグや設定を見つけることができないようで、minimongoに現在利用可能なデータ。
もしこれが私がしなければならないことが完全にわかっていないのであれば、私はjQueryを使って選択されていないミッションを隠していましたが、メテオの周りに頭を浮かべていました。選択性/ローカルフィルタリングを促進する反応性。
往復を避ける方法はありますか、それとも間違って使用していますか?
明確にしていただきありがとうございますが、これは私が期待していることですが、時にはネットワーク活動はありませんが、それ以外の時期があるため予測が難しいようです。おそらく、それはちょうど同期を扱うとき少しランダムです。乾杯:) –
[ddpパケットをリアルタイムで表示する方法](http://meteorhacks.com/discover-meteor-ddp-in-realtime.html) –