1 つの予約システムを作成するために、fullcalendar で Meteor を試しています。この投稿 (コレクションから配列を作成するときにデータを「リアクティブ」に保つ方法) に基づいて、フルカレンダーを作成し、イベント コレクションで更新することができました。しかし、自動サブスクライブを使用して、さまざまなカテゴリに基づいてイベントのフィルターを追加しようとしているときに、奇妙なことが起こりました。DIV には複数のカレンダー テーブルが作成されます。Meteor の subscribe を使用してすべてのイベントが返される場合は発生しません。
どうすれば解決できますか?どうぞよろしくお願いいたします。
以下の Meteor クライアント JS コードのスニペット:
Meteor.autosubscribe(function(){
Meteor.subscribe("Events", Session.get('current_category'));
});
....
Template.doctors.rendered = function() {
....
$('#calendar').fullCalendar({
....
events: function(start, end, callback) {
var cal_events = [];
events.find().forEach(function(event_item) {
var doc_name = doctors.findOne(event_item.doctor).name;
cal_events.push({
title: doc_name,
start: event_item.start,
end: event_item.end,
allDay: false,
});
}
});
callback(cal_events);
},
....
});
....
}
解決済み
ここでの主な問題は、「Template.doctors.rendered」が複数回実行され、複数の完全なカレンダー インスタンスが生成されることです。以下のようにカレンダー<div id='calendar'></div>
を「cal_container」として別のテンプレートに移動し、「Template.doctors.rendered」の下のすべてのコードを「Template.cal_container.rendered」に移動しました。今では動作します。