在模板中使用对象

时间:2016-05-04 17:24:47

标签: javascript meteor

我通过id获取用户信息

Template.registerHelper( 'getInfo', (id) => {
    return getInfo.find({ _id: id}).fetch()
});

我在像这样的每个循环中使用它

{{#each posts}}
    {{getInfo post_user_id}}
{{/each}}

但似乎模板中只有[object Object]。

  

[object Object]

我怎样才能做到这一点?我是否获得以下用户信息:

{{#each posts}}
    {{getInfo post_user_id}}.user_name
{{/each}}

我的代码是这样的:

Users = new Mongo.Collection('users');
Posts = new Mongo.Collection('posts');


Posts.insert({ text: "text 1", post_user_id: "1"});
Posts.insert({ text: "text 2", post_user_id: "1"});
Posts.insert({ text: "text 3", post_user_id: "1"});
Posts.insert({ text: "text 4 is from user id 2", post_user_id: "2"});

Users.insert({ user_name: "jack", _id: 1});
Users.insert({ user_name: "another user", _id: 2});

Template.registerHelper( 'getInfo', (id) => {
    return Users.find({ _id: id}).fetch()
});

Template.posts.helpers({
    posts() {
        return Posts.find({}, { sort: { limit: 50, createdAt: -1 } });
    },
});

1 个答案:

答案 0 :(得分:0)

我通过向我的函数添加一个参数来解决问题

Template.registerHelper( 'getInfo', (id, field) => {
    return Users.findOne({ _id: id}).[field] // <--
});

问候。