在調用數據之前,您需要確保您的訂閱已完成。
流星數據在線上發送,所以當您的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