Meteor:Session.set,在Router.route()中,在“客户端”页面中使用时是未定义的
Meteor: Session.set, inside Router.route(), is then undefined when used in a 'client' page
我在app中声明了一个铁路由器.js它位于根"lib"文件夹中。
Router.route('/editTiki/:_id', function () {
var params = this.params
var id = params._id
Session.set("editTikiID", id)
this.render("editTikiRoute")
}, {name:"editTikiRoute"});
然后,在"客户端"文件夹内的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);
在执行路由之前,不会定义会话变量。您的 editTiki.js 文件中不在函数(我猜是控制台.log(中的任何代码都将在路由器中设置会话变量之前执行。这就是JavaScript的工作方式。
这意味着会话变量应在任何模板帮助程序或模板的事件和呈现函数中定义。
相关文章:
- 使用 RESTful API,如果未定义特定的响应 json 级别,我如何在客户端不出错
- 客户端自定义验证不是't正在执行
- XMPP客户端未连接-使用Node Bosh服务器
- 'io未定义'在客户端上.在HTML中包含socket.io脚本标记
- Meteor 方法返回未定义到客户端(异步)
- 自定义验证程序客户端验证函数未触发
- SignalR 客户端中心代理未定义
- 客户端未使用 Socket.io 和 Node.js 实时更新
- 在 MQTT 客户端中“未捕获的引用错误:未定义消息传递”
- 在客户端上从 Meteor.call 获取未定义,但在服务器上变量包含数据
- Netty-socketio:客户端未完成升级 - 关闭传输
- 类似猫鼬的客户端架构定义
- 使用单选按钮进行客户端自定义验证
- 在ASP.NET Web用户控件中生成客户端自定义事件
- 客户端未定义JSON服务类
- 单选按钮的客户端自定义验证器
- 要求的事情.参数在服务器端未定义:nodejs
- Socket.io客户端未正确接收来自服务器的数据
- GWT客户端-未捕获类型错误:无法读取属性'clear_31_g$'的未定义
- 套接字.io ReferenceError客户端未定义