0
我在模板A中有一個選擇框,用於選擇項目「名稱和ID」。在選擇框更改時使用新ID重新初始化模板
我也有一個「item」模板,需要一個ID作爲參數從它的數據庫加載其數據。我使用會話變量作爲id,並使用return Session.get將id傳遞給「item」模板。這僅適用於加載。會話變量更改「項目」模板時未更新。我如何獲得「項目」模板重新初始化
一些代碼:
Template.selectBox.helpers({
selectList: function() {
return Templates.find({}, {fields: {'_id': 1, 'name': 1}});
},
selectedId: function() {
return Session.get("selectedId");
}
});
Template.selectBox.events({
'change #item-chooser': function (event) {
var selectedId = $(event.currentTarget).find(":selected").val();
if (typeof(selectedId) === 'undefined'
|| selectedId === "new") {
Session.set("selectedId", "new");
}
else {
Session.set("selectedId", selectedId);
}
}
});
的項目模板使用
{{> item selectedId}}
Template.item.onCreated(function() {
var selectedId = this.data.selectedId;
this.selectedItem = new ReactiveVar;
if (typeof(selectedId) === 'undefined'
|| selectedId === "new") {
this.selectedItem.set(emptyItem);
}
else {
var selectedItemData = Templates.findOne({_id: selectedId});
this.selectedItem.set(selectedItemData);
}
});
你是事業權。我一直在嘗試會話,reactivevar只是爲了嘗試差異,但你的幫手方法似乎是最合適的。謝謝 – Todilo