2015-12-14 48 views
4

这样做的一般方法是什么?我有问题与fullcalendar反应包装。正式版(rzymek)不幸的是不能正常工作,所以我决定创建自己的包装。我使用渲染和销毁事件来实现插件实例的初始化和销毁​​,但是......它没有反应性地工作(清楚起来,它和rzymek版本完全一样)。怎么了?将非反应性文库包装到反应包装

编辑:我的问题不仅是被动事件,我想完整的日历充分反应,这意味着,官方论据的每一个变化都应该将日历重新放到新的状态。

回答

1

Fullcalendar在反应式工作中有点棘手。一个好黑客,我结束了使用被包装一Collection.find()调用,而自动运行的refetchEvent像这样:

Template.foo.onRendered(function() { 
    this.autorun(function() { 
    YourCollection.find({}); 
    $(".calendar").fullCalendar("refetchEvents"); 
    }); 
}); 

那么您对YourCollection任何更新将触发refetchEvent将执行你的eventseventRender fullcalender回调,在那里你可以更新日历。

+0

谢谢,但我需要这种行为与所有inicialization参数。 – Seraph

0

问题是,Blaze在参数更改时不会重新渲染模板。这真的很奇怪。如何解决这个问题?使用Template.currentData(),它是反应性的源,返回实际的模板数据上下文。下一步是:在onRendered回调中,我们开始autorun,它会监听模板数据上下文中的更改,并根据更改重新渲染日历。

最后,我们有被动的fullcalendar。