【发布时间】:2016-03-18 17:58:39
【问题描述】:
说我有这条路线:
Router.route('/order', {
template: 'order',
name: 'order',
layoutTemplate: 'layout',
waitOn: function(){
return Meteor.subscribe('orders');
},
data: function(){
return Orders.findOne()._id;
}
});
在服务器文件夹中:
Meteor.publish('orders', function(){
return Orders.find();
});
在页面加载时,我得到cannot read property '_id' of undefined,指向Orders.findOne()._id
但我打开 Chrome 控制台并执行 Orders.findOne()._id 并立即弹出一个 id。
由于某种原因,data 似乎在waitOn 中的订阅准备好之前正在运行?我正在使用最新的 Iron Router。
【问题讨论】:
-
你能分享你的 publish() 吗?另外,只有一个订单还是在 publish() 中处理?
-
你可以试试
var data = Orders.findOne(); return data && data._id,直到你找到真正的答案,我想。 -
@smoksnes,我已经添加了我的发布。这只是一个标准的“发布所有内容”。 Orders 集合中目前有许多订单。
标签: meteor iron-router