【发布时间】:2018-02-04 21:26:11
【问题描述】:
辅助方法
GetSchoolId: function () {
var moduleIdArray=[];
var myslug = FlowRouter.getParam('myslug');
var mySchoolId = SchoolDb.findOne({slug: myslug});
if (mySchoolId) {
ModuleSchool.find({}, {schoolId: mySchoolId._id}).forEach(function (modulesSelected) {
moduleIdArray.push(modulesSelected.moduleId);
});
if (typeof moduleIdArray === 'object' && moduleIdArray instanceof Array) {
console.log(moduleIdArray);
moduleIdArray.forEach(function (moduleIds) {
return Modules.find({}, {_id: moduleIds}).fetch();
});
}
}
}
模板代码:
{{#each GetSchoolId }}
<p>{{GetSchoolId.modulename}} </p>
{{/each}}
</p>
{{/each}}
我知道 Meteor Profs,它是一英寸的冰山,几秒钟之内就会被摧毁。我有 3 个集合,一个用于学校记录 (SchoolDb),第二个用于模块 (Modules),第三个用于关系表 (ModuleSchool)。模块分配给学校。
从上面的代码中,我可以使用传递给我用来从关系表 (SchoolDb) 和 ( ModuleSchool) 返回分配给相关学校的模块。我能够获取模块 ID 并将它们转换为数组,我现在要做的是使用从 ModuleSchool 获取的 ID 数组从模块中返回模块名称,因为只有 _ids 存储在关系表。
当我尝试在模板上打印时,上面的代码只执行将_ids 转换为数组的级别,但没有显示任何内容。我有什么错?
【问题讨论】:
-
看
$in -
尼尔伦,谢谢。请根据我的帖子提供有关实施的 sn-p。
标签: arrays mongodb meteor find meteor-blaze