1

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」に移動しました。今では動作します。

4

0 に答える 0