在调用数据之前,您需要确保您的订阅已完成。
流星数据在线上发送,所以当您的javascript/html发送时,浏览器尚未被告知从服务器下载数据。
有两种方式这一轮:
如果您使用的是与您的订阅内容,您可以使用Deps.autorun
使用的DEP
Deps.autorun(function() {
var subscribed = Session.equals("subscribed",true);
if(!subscribed && Posts.find().count()) {
Session.set("subscribed",true);
var vtop = Posts.findOne({},{sort: {created_at:-1},reactive:false}).created_at;
console.log(vtop)
}
你尚未达到的阶段
或等待认购完成
服务器JS
Meteor.publish("posts", function() {
return Posts.find();
}
客户端JS
Meteor.subscribe("posts",function() {
var vtop = Posts.findOne({},{sort: {created_at:-1},reactive:false}).created_at;
console.log(vtop)
});
如果使用发布/订阅您需要删除autopublish
包,但如果你这样做,你还需要发布的其他类别或浏览器不会看到它们。
更多关于如何使用发布看文档:http://docs.meteor.com/#publishandsubscribe
双方的例子还用到发布,有一个截屏:http://meteor.com/examples/parties
太谢谢你了!第二种解决方案完美运作。 – user1720271 2013-04-05 10:00:26
如果我有足够的声望,我会投你一票lol – user1720271 2013-04-05 10:01:07
不用担心:)很高兴为你工作 – Akshat 2013-04-05 10:49:11