Ich bin neu bei Meteor und versuche, dieses Problem herauszufinden, das ich habe.Meteor + MongoDB: Wie bekomme ich verschachtelte Daten?
Ich versuche, Daten aus der Lessons-Sammlung basierend auf der Route, die übergeben wird, zu laden. Wenn zum Beispiel/courses/level1/lection1/1a übergeben wird, dann zeige Daten
Leider funktioniert das nicht.
Bin ich auf dem richtigen Weg oder gibt es einen besseren Weg?
Sammlung
{
"_id": "YSgr3fvjpEBn7ncRa",
"courseId": "level1",
"lesson": [
{
"lessonId": "lesson1",
"freeLesson": true,
"title": "Lesson 1",
"eachLesson": [
{
"eachLessonId": "1a",
"title": "This is (masculine)",
"video": "839843"
},
{
"eachLessonId": "1b",
"title": "That is (masculine)",
"video": "839843"
},
{
"eachLessonId": "1c",
"title": "This is (feminine)",
"video": "839843"
},
{
"eachLessonId": "1d",
"title": "That is (feminine)",
"video": "839843"
},
{
"eachLessonId": "1e",
"title": "Getting to know you",
"video": "839843"
}
]
}
]
}
Routen
Router.route("courses/:courseId/:lessonId/:eachLessonId", {
path:"/courses/:courseId/:lessonId/:eachLessonId",
layoutTemplate: "layoutLessons",
template:"lessons",
onBeforeAction:function(){
var currentUser = Meteor.userId();
if (currentUser) {
Session.set('courseId', this.params.courseId);
Session.set('lessonId', this.params.lessonId);
Session.set('eachLessonId', this.params.eachLessonId);
this.next();
} else {
Router.go('/')
}
},
});
Template Helfer
Template.lessons.onCreated(function(){
Meteor.subscribe('listLessons');
});
Template.lessons.helpers({
currentLesson: function() {
var currentLesson = Session.get('eachLessonId');
return Lessons.find({"lesson.eachLesson.eachLessonId" : currentLesson});
},
});
HTML
{{#each currentLesson}}
{{title}}
{{video}}
{{/each}}
Es funktioniert! :-) Das einzige Problem ist, dass es nach dem Einlesen der Daten kontinuierlich geladen wird. Also, wenn ich waitOn zu Abonnements ändere: es lädt die Daten und der Ladetext ist immer noch da und wenn ich waitOn verlasse lädt es keine Daten und lädt einfach weiter. – user1400803
@ user1400803 Okay, das ist nicht gut. Könnten Sie bitte das Server/Client-Protokoll überprüfen? –
@ user1400803 Könnten Sie bitte Ihre Veröffentlichungsfunktion veröffentlichen? –