0
編輯:一般解決方案已發佈在答案中!流星:檢測上次{{>模板}}完成{{#each}}中的渲染時
我目前使用Masonry來定位一些{{> card}}
模板。
{{#each searchResults}}
{{> card}}
{{/each}}
{{searchResults}}
回報Session.get("searchResults")
,在一個新的搜索而改變。然後該頁面將使用新的{{> card}}
模板重新渲染。
我無法讓我的磚石火在正確的時間:
Template.search.onRendered(function(){
this.autorun(function(){
var tracking = Session.get("searchResults");
// ...masonry code here...
})
});
目前,磚石代碼大火之後Session.get("searchResults")
的變化,但在此之前的{{> card}}
模板呈現或存在。實際上,砌體位置零元素,然後元素得到渲染(並保持在錯誤的位置)。
更新的問題:當最後的{{> card}}
模板更新時,如何調用砌體?(注:我可以附加onRendered到卡模板,但onRendered只有第一次創建卡時,而不是在更新火災)
在onRendered塊中調用砌體代碼。擺脫onRendered塊的autorun和session.get代碼 –
如果你想在卡片渲染完成後調用該代碼,那麼在卡片上做石工調用.onrendered –
@EliezerSteinbock我試過了,但是當Session .get(「searchResults」)'更新,'{{> card}}'更新但不觸發onRendered(或onDestroyed)。我猜這會改變我的問題:當Session.get(「searchResults」)被更新*和* {{> card}}模板被更新時,我該如何調用masonry? – Pixelsage