gpt4 book ai didi

templates - Meteor 模板状态与全局 session

转载 作者:行者123 更新时间:2023-12-02 23:38:31 25 4
gpt4 key购买 nike

我刚刚开始使用来自 Apache-Wicket 可重用组件的 Web 应用程序开发的 Meteor。

据了解,如果模板中使用的数据不是 mongodb 文档,则必须使用 session 来存储状态信息,例如下拉选择。但 session 是全局的,如果模板使用两次或多次,则固定 session 属性“mySelection”将不起作用,因为所有模板实例将共享/覆盖相同的 session 值。Apache Wicket 解决方案是使用 fullqualified template-path 作为属性前缀,并为每个模板实例维护唯一的 session 属性。

是否有通用的内置解决方案来维护 meteor 中的“模板实例状态”?如果没有,也许模板实例本身可以通过模板函数以某种方式访问​​?

最佳答案

我执行此操作的方式类似于您所描述的 Apache Wicket 解决方案,只不过我会编写自己的代码来管理它。例如,使用与每个模板匹配的键来管理 Session 对象:

function setTemplateSession(key, value) {
Session.set("template_" + key, value);
}
function getTemplateSession(key) {
Session.get("template_" + key);
}

在您的模板方法中:

Template.myList.selection = function() {
return getTemplateSession("myList");
}

Template.myOtherList.selection = function() {
return getTemplateSession("myOtherList");
}

你显然可以进一步抽象这一点。虽然如果 Meteor 默认提供这种行为就好了,但也许您可以编写一个智能包,将 Apache Wicket 的理念贡献给 Meteor 的模板系统,而​​不是指望 Meteor 来做到这一点?

关于templates - Meteor 模板状态与全局 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13760146/

25 4 0