我有一個模板幫手取決於當前時間:如何失效時間模板依賴
Template.bunny.alive = function() {
if (this.time_to_die < new Date().getTime())
return true;
else
return false;
};
如何讓流星重新繪製在當前時間的推移time_to_die模板?
<template name="bunny">
{{if alive }}
Your bunny is alive.
{{/if}}
</template>
編輯>
可能的解決方法是使用一個會話變量並存儲在比如說10秒的時間間隔,其被更新的時間。 所以
Session.setDefault("current_time", new Date().getTime());
和
Meteor.setInterval(function() {
Session.set("current_time", new Date().getTime());
}, 10000);
然後,我可以只使用Session.get( 「CURRENT_TIME」)在我的助手,使他們很好地反應...
感覺還挺kludgey關係嗎?
很高興有一個超時很聰明。如果你有很多類似的模板,這兩個解決方案都有很多額外的代碼。如果兔子在將來死得太遠,會爆發(溢出setTimeout)。我可能會去基於會話的解決方案,因爲在我的實際情況下,準確度可能是〜1分鐘,並不重要。儘管你認爲你的解決方案可能是最好的。 – jms301 2014-09-12 20:46:37
順便說一下'self = this'的目的是什麼? – jms301 2014-09-12 20:49:48
「溢出setTimeout」?不知道你的意思,但無論你在想什麼,我都不認爲這是你需要擔心的。在傳遞給'setTimeout'的函數內部,self用於訪問模板實例。 'created'函數內的'this'指向模板實例,但函數內部的'this'傳遞給'setTimeout',因此不是通過'self'來引用它。 – 2014-09-13 06:57:56