2
有人可以澄清流星(把手)模板如何與被動源進行交互嗎? documentation已經有很多,但更系統的解釋會有所幫助。流星模板中的反應行爲
舉例來說,似乎當Session
變量改變
Template.foo.rendered = function() {
var selectedItem = Session.get('item_selected');
... do stuff ...
}
我不明白爲什麼Template.rendered
事件不無功源的變化作出反應以下不會觸發模板重新抽籤。我還想了解其他事件/方法是否表現出這種特殊行爲。當您設置item_selected
值與
Session.set("item_selected","value");
這Session
哈希,旁邊的名字有相似Deps.depends反應依賴
Akshat,我的問題是真的,爲什麼你描述並不適用於'Template.rendered()'事件的行爲 - 如果有其他事件/遵循相同模式的方法 – 2013-04-21 13:04:46
它適用於任何地方,Template.rendered將在每個模板呈現器上被調用,這是被動上下文無效的時間:哪個被動變量會像Session一樣變化。我不太清楚你的意思是其他方法/事件的改變,因爲不需要大量的方法來重新運行,因爲只有面向模板數據/用戶的功能需要改變。此外,還可以使用Deps.autorun(function(){..})添加自定義事件,該功能在被動上下文無效時也會運行。 – Akshat 2013-04-21 13:27:01
'Template.rendered'確實每次渲染模板時都會調用。但它似乎沒有註冊它所包含的反應性來源,就像其他方法一樣。換句話說:在上面的例子中,如果Session變量發生變化(並且假設它不是鏈接到模板的其他方法的一部分),則不會觸發模板呈現。 – 2013-04-21 20:13:47