MeteorJS我似乎无法从服务器获取对象的属性

时间:2015-08-06 15:31:31

标签: javascript web-applications meteor publish-subscribe

嘿伙计我在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')});
});

1 个答案:

答案 0 :(得分:1)

fetch返回一个数组。在您的助手中,您需要执行以下操作:

var todaysEvent = communityEvents.findOne();

fetch

您可以通过打开浏览器控制台并执行communityEvents.find().fetch() 来轻松测试出版物:

{{1}}

将返回一个可以检查的数组(希望如此)。