2015-12-14 51 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。