Meteor:发布一个集合并将其附加到适当的用户

时间:2016-02-24 05:04:51

标签: meteor

我有一个学生用户列表和课程集合。当我发布学生列表时,我希望它显示他们参加的课程。我的代码目前显示每个学生在每个学生下面参加的所有课程,而不是与个别学生相关的课程。

如何让它在正确的版本下显示正确的类别。

路径:classes.js

Template.classes.helpers({
    studentList: ()=> { 
        return Meteor.users.find({_id: { $ne: Meteor.userId() }}); 
    },      
    classes: ()=> {
        return Classes.find({_id: { $ne: Meteor.userId() }});
    },
});

路径:classes.html

{{#each studentList}}
    {{profile.firstName}}
        {{#each classes}}
            {{class}}
        {{/each}}
{{/each}}

路径:Classes.js

Schemas.Classes = new SimpleSchema({
    class: {
        type: String
    },
    teacherUserId: {
        type: String,
        autoValue: function() {
            return this.userId
        },
        autoform: {
            type: "hidden"
        }
    },
    studentUserId: {
        type: String,
        optional: true,
        autoform: {
            type: "hidden"
        }
    }
});

3 个答案:

答案 0 :(得分:1)

上面的代码表示:"查找所有类的ID不等于当前用户ID的类。" 我认为你想要:"查找当前用户的id在学生列表中的所有课程。"

假设类有一个students字段,这是一个用户ID数组,您可以这样做:

return Classes.find({students: Meteor.userId()});

答案 1 :(得分:1)

感谢大家的投入,我的问题解决了!蒂姆击中了头部的钉子。对于那些遇到类似问题的人,请查看下面的代码。我希望它有所帮助。再次感谢蒂姆。

路径:classes.js

Template.classes.helpers({
    classes: ()=> {
        return JobOffers.findOne({candidateUserId: this._id});
    },
});

路径:classes.html

{{#each studentList}}
    {{profile.firstName}}
        {{#with classes}}
            {{class}}
        {{/with}}
{{/each}}

答案 2 :(得分:0)

当您定义this时,您告诉计算机的是:

{{1}}

这不是你想要问你的工人的原因。你想问问你的工人:

{{1}}

在没有真正尝试为您编写的情况下,可能与您在helper function

中某处使用{{1}}有关