0
我想爲模板實例設置一個id。一個在熱門代碼推動下生存下來的人。 我嘗試將id添加到模板的firstNode上的「data-id」屬性,但當發生熱門代碼推送時,它會丟失。如何獲取模板實例ID?
目標是將模板的狀態保存在以模板ID命名的會話變量中。在模板呈現的事件中,我將檢查該會話變量,如果它具有該信息,我將在發生熱代碼推送時恢復模板的狀態。
更新 這是一個包,所以id必須是一個隨機數。
我想爲模板實例設置一個id。一個在熱門代碼推動下生存下來的人。 我嘗試將id添加到模板的firstNode上的「data-id」屬性,但當發生熱門代碼推送時,它會丟失。如何獲取模板實例ID?
目標是將模板的狀態保存在以模板ID命名的會話變量中。在模板呈現的事件中,我將檢查該會話變量,如果它具有該信息,我將在發生熱代碼推送時恢復模板的狀態。
更新 這是一個包,所以id必須是一個隨機數。
您不應該爲此使用會話。 ReactiveDict
(來自reactive-dict
數據包)現在支持數據遷移,該數據遷移在熱碼推動 (查看here)後仍然存在。 你需要做的唯一的事情就是你的反應字典實例提供了一個獨特的名字
Template.yourTemplateName.created = function() {
this.myState = new ReactiveDict('myUniqueId');
}
這隻會工作 - 當然 - 除非你有你的模板的多個併發實例。另請注意,此解決方案不會保證用戶強制頁面重新加載後的狀態。如果您需要支持更復雜的行爲模式,那麼您可能不會使用Cookie或基於本地存儲的解決方案。
這就是問題所在,我試圖爲模板實例保存一個隨機ID,這樣我就可以在熱推代碼後檢索狀態。你的例子假設我已經有了ID。 – Manuel
有關索賠的任何消息來源「ReactiveDict現在支持數據遷移,這些數據遷移在熱代碼推動下仍然存在」? [代碼中的註釋](https://github.com/meteor/meteor/blob/devel/packages/reactive-var/reactive-var.js#L10)不同意。 –
@ PeppeL-G好點!我忘了添加適當的參考。 –