嘿伙计我在meteorJS上遇到了很多问题,因为当我订阅服务器端的发布时,我似乎无法访问任何客户端的属性。我有一个为我的用户提供“每日活动”的集合,我将尝试发布到客户端。但由于某些原因,它在客户端未定义,即使我可以在服务器端执行console.log并且它工作正常。
以下是代码:
Client side:
communityEvents = new Mongo.Collection("communityEvents");
Meteor.subscribe('communityEventsPub');
Template.communityEvent.helpers({
type: function(){
todaysEvent = communityEvents.find().fetch();
console.log("this is the event " + todaysEvent["type"]);
return todaysEvent.type;
},
event: function(){
todaysEvent = communityEvents.find().fetch();
return todaysEvent.event;
}
});
Server Side:
communityEvents = new Mongo.Collection("communityEvents");
Meteor.publish("communityEventsPub", function(){
console.log(moment().format('l'));
console.log(communityEvents.find({date:moment().format('l')}).fetch());
return communityEvents.find({date:moment().format('l')});
});
答案 0 :(得分:1)
fetch返回一个数组。在您的助手中,您需要执行以下操作:
var todaysEvent = communityEvents.findOne();
或
fetch
您可以通过打开浏览器控制台并执行communityEvents.find().fetch()
来轻松测试出版物:
{{1}}
将返回一个可以检查的数组(希望如此)。