Javascript 将非反应性库打包到反应性包装器
一般的做法是什么?我对fullcalendar被动包装器有问题。很遗憾,官方版本(rzymek)不能正常工作,所以我决定创建自己的包装器。我使用呈现和销毁事件进行插件实例初始化和销毁,但是。。。它没有反应性地工作(很明显,它的工作原理与rzymek版本完全相同)。怎么了Javascript 将非反应性库打包到反应性包装器,javascript,meteor,fullcalendar,meteor-blaze,Javascript,Meteor,Fullcalendar,Meteor Blaze,一般的做法是什么?我对fullcalendar被动包装器有问题。很遗憾,官方版本(rzymek)不能正常工作,所以我决定创建自己的包装器。我使用呈现和销毁事件进行插件实例初始化和销毁,但是。。。它没有反应性地工作(很明显,它的工作原理与rzymek版本完全相同)。怎么了 编辑:我的问题不仅仅是被动事件,我希望完整的日历完全是被动的,这意味着,每一次初始化参数的更改都应该使日历重新进入新状态 Fullcalendar要以反应方式工作有点棘手。我最后使用的一个OK hack是在自动运行中包装Coll
编辑:我的问题不仅仅是被动事件,我希望完整的日历完全是被动的,这意味着,每一次初始化参数的更改都应该使日历重新进入新状态 Fullcalendar要以反应方式工作有点棘手。我最后使用的一个OK hack是在自动运行中包装Collection.find()调用和refetchEvent,如下所示:
Template.foo.onRendered(function() {
this.autorun(function() {
YourCollection.find({});
$(".calendar").fullCalendar("refetchEvents");
});
});
因此,您对
YourCollection
所做的任何更新都将触发一个refetchEvent,该事件将执行events
和eventRender
FullCalendar回调,您可以在其中更新日历。问题是,Blaze在其参数更改时不会重新渲染模板。真奇怪。如何解决这个问题?使用Template.currentData(),它是返回实际模板数据上下文的被动源。下一步是:在onRendered回调中,我们启动autorun,它侦听模板数据上下文中的更改,并根据更改重新渲染日历
最后,我们有了反应式fullcalendar。谢谢,但我需要所有非专业化参数的这种行为。