gpt4 book ai didi

javascript - Meteor:Router.route() 内部的 Session.set 在 'client' 页面中使用时未定义

转载 作者:行者123 更新时间:2023-12-03 11:12:07 26 4
gpt4 key购买 nike

我在 app.js 中声明了一个 Iron 路由器,它位于根“lib”文件夹中。

    Router.route('/editTiki/:_id', function () {

var params = this.params
var id = params._id

Session.set("editTikiID", id)

this.render("editTikiRoute")

}, {name:"editTikiRoute"});

然后,在“client”文件夹内的 editTiki.js 中,我有以下代码:

console.log(Session.get("editTikiID"))
// undefined

但是,它是未定义的,不明白为什么。我需要它来订阅正确的文章:

Meteor.subscribe("tikiDBEdit", Session.get("editTikiID"))

感谢您的见解...

最佳答案

只需在您的路由器中订阅即可,如下所示:https://github.com/EventedMind/iron-router/blob/devel/Guide.md#wait-and-ready
如果您不想等到订阅准备就绪,则更简单:

Meteor.subscribe("tikiDBEdit", id);

在执行路由之前,不会定义 session 变量。 editTiki.js 文件中不在函数中的任何代码(比如我猜的 console.log)都将在路由器中设置 session 变量之前执行。这就是 javascript 的工作原理。
这意味着 session 变量应该在任何模板助手或模板的事件和渲染函数中定义。

关于javascript - Meteor:Router.route() 内部的 Session.set 在 'client' 页面中使用时未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27530936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com