这样做的一般方法是什么?我有问题与fullcalendar反应包装。正式版(rzymek)不幸的是不能正常工作,所以我决定创建自己的包装。我使用渲染和销毁事件来实现插件实例的初始化和销毁,但是......它没有反应性地工作(清楚起来,它和rzymek版本完全一样)。怎么了?将非反应性文库包装到反应包装
编辑:我的问题不仅是被动事件,我想完整的日历充分反应,这意味着,官方论据的每一个变化都应该将日历重新放到新的状态。
这样做的一般方法是什么?我有问题与fullcalendar反应包装。正式版(rzymek)不幸的是不能正常工作,所以我决定创建自己的包装。我使用渲染和销毁事件来实现插件实例的初始化和销毁,但是......它没有反应性地工作(清楚起来,它和rzymek版本完全一样)。怎么了?将非反应性文库包装到反应包装
编辑:我的问题不仅是被动事件,我想完整的日历充分反应,这意味着,官方论据的每一个变化都应该将日历重新放到新的状态。
Fullcalendar在反应式工作中有点棘手。一个好黑客,我结束了使用被包装一Collection.find()调用,而自动运行的refetchEvent像这样:
Template.foo.onRendered(function() {
this.autorun(function() {
YourCollection.find({});
$(".calendar").fullCalendar("refetchEvents");
});
});
那么您对YourCollection
任何更新将触发refetchEvent将执行你的events
和eventRender
fullcalender回调,在那里你可以更新日历。
问题是,Blaze在参数更改时不会重新渲染模板。这真的很奇怪。如何解决这个问题?使用Template.currentData(),它是反应性的源,返回实际的模板数据上下文。下一步是:在onRendered回调中,我们开始autorun,它会监听模板数据上下文中的更改,并根据更改重新渲染日历。
最后,我们有被动的fullcalendar。
谢谢,但我需要这种行为与所有inicialization参数。 – Seraph