3
我做一個簡單的函數是這樣的:你如何使用反應性會話和參考項目? (數組,對象等)
Game.msg = function(msg){
var m = Session.get("messages") || [];
m.push({"text": msg});
Session.set("messages", m);
};
和模板:
Template.field.messages = function(){
return Session.get("messages");
};
觸發Game.msg()不會觸發自動 - 模板的更新。我懷疑這是因爲數組引用沒有改變[即使內容有]。什麼是觸發更新的最佳方式?
我的哈克解決方法是具有虛設計數變量(VAR C = Session.get( 「MESSAGE_COUNT」)),我在Game.msg設置和參考在Template.field.messages,像這樣:
Game.msg = function(msg){
var m = Session.get("messages") || [];
m.push({"text": msg});
// silly, but adding a count so the array size changes and triggers a flush
Session.set("messages", m);
Session.set("message_count", m.length);
};
Template.field.messages = function(){
var c = Session.get("message_count");
return Session.get("messages");
};
謝謝,這是一個很好的建議。我對複製到一個新陣列毫無必要地猶豫,但它應該是一個快速操作。 – Kalid