从订阅回调中返回值

时间:2016-11-08 16:48:52

标签: meteor publish-subscribe

我试图从通过订阅返回的文档中获取字段的值。订阅放在辅助函数中。我在订阅中有一个回调函数返回此值,然后我将返回值赋给变量(请参阅代码)。最后,我让助手返回这个值。但是,返回的值是一个订阅对象(?),我似乎无法从中得到任何东西。

代码:

Template.myTemplate.helpers({
    'returnUser':function(){
        var id = Session.get('currentUserId');
        var xyz = Meteor.subscribe('subscriptionName',id,function(){
            var user = accounts.find().fetch({_id: id})[0].username; 
            return user;
            }
        return xyz;
        }
});

任何帮助将不胜感激。 :)

1 个答案:

答案 0 :(得分:2)

您必须在创建模板时首先加载订阅,这将使用Minimongo创建数据实例。

Template.myTemplate.onCreated(function () {
    var self = this;
    self.autorun(function() {
        self.subscribe('subscriptionName',id);
    });
});

然后在帮助程序中,您可以进行查询以检索数据

Template.myTemplate.helpers({
    'returnUser': function(){
        var id = Session.get('currentUserId');
        return accounts.findOne(id).username;
    }
});