将非反应库打包为反应包装器



执行此操作的一般方法是什么?我对fullcalendar反应包装器有问题。不幸的是,官方版本(rzymek)无法正常工作,所以我决定创建自己的包装器。我使用渲染和销毁事件进行插件实例初始化和销毁,但是。。。它没有反应性地工作(需要明确的是,它的工作方式与rzymek版本完全一样)。怎么了?

编辑:我的问题不仅仅是反应性事件,我希望整个日历都是完全反应性的,也就是说,每一次初始化参数的更改都应该将日历重新发布到新状态。

Fullcalendar要被动工作有点棘手。我最终使用的一个OK破解是将Collection.find()调用和refetchEvent封装在一个类似的自动运行中

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

因此,您对YourCollection进行的任何更新都将触发refetchEvent,该事件将执行您的eventseventRender全日历回调,然后您可以在其中更新日历。

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

最后,我们有了反应式完整日历。

相关内容

  • 没有找到相关文章

最新更新