Ich habe Probleme beim Drucken der Inhalte, die ich von einer Meteor Sammlung bekomme. Ich habe meine Sammlung in /ui/api/collections.jsMeteor: Iteriere über den Cursor von MongoCollection.find() und drucke ein Feld
import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';
import 'meteor/aldeed:collection2';
export const Courses = new Mongo.Collection("courses");
Courses.allow({
'insert': function() {
// if (Meteor.isEducator(Meteor.userId())) {
return true;
}
})
/imports/api/course.html
<template name="course">
<h2> You are enrolled in the following courses:</h2>
<ul>
{{#each course_list}}
{{> getCourseName}}
{{/each}}
</ul>
</template>
<template name="getCourseName">
<li><h2>{{courseName}}</h2></li>
</template>
/imports/api/course.js erklärt
Template.course.helpers({
course_list: function() {
var result = Courses.find({});
console.log("result is:");
console.log(result);
return result;
}
})
Ich habe Kurse als neue Mongo.Collection deklariert und diese in /server/main.js importiert. Danach habe ich /imports/api/collections.js in course.js und course.html importiert.
Ich bemerkte, dass es LocalCollection sagt, die mich denken lassen, dass es die tatsächliche Sammlung nicht findet. Wenn ich eine db.courses.find() auf der serverseitigen Mongo-Konsole mache, sehe ich die zwei Kurse, die in der Sammlung existieren, und beide haben ein courseName-Feld. Ich glaube nicht, dass ich veröffentlichen/abonnieren muss, da ich die Sammlung in Importen deklariere und dann die Sammlung als globale Variable exportiert habe. Ich bin neu bei Meteor und Javascript im Allgemeinen, so dass jede Erklärung sehr geschätzt wird.