2016-04-29 7 views
1

Zuerst von allen Hallo,"Where" -Klausel in Vorlage Helfer

Ich bin neu in Meteor und nur ein Hobby-Entwickler. Etwas, von dem ich mir sicher bin, dass es ziemlich einfach ist, hat mich in den letzten Tagen nervig gemacht und ich werde versuchen, mein Problem anhand eines einfachen Beispiels zu erklären.

Betrachten wir ein Online-Forum, wo ich Kategorien von Foren und in jedem von ihnen eines von mehreren Foren haben.

würde ich das Endergebnis in meiner Vorlage mag etwas sein wie:

{{#each category}} 
    {{#each forum where forum.category=category}} 
    {{nameForum}} 
    {{/each}} 
{{each}} 

und das würde die Kategorieliste und für jeden von ihnen die verschiedenen Foren im Innern.

Meine Fragen sind: wäre, was ist der beste Ansatz für ein solches Problem? Bedeutung: Sollen Foren ein Unterelement der Kategorien im Schema sein, dann scheint das Shcema etwas kompliziert zu sein. Sollen Forum und Kategorien Schema getrennt werden, aber in der gleichen Sammlung, aber dann wie kann ich das "wo" in der Vorlage tun? Habe ich eine total alberne Herangehensweise an das Thema und habe etwas im Tutorial verpasst?

Vielen Dank im Voraus für Ihre Antwort.

Ivo

Antwort

1

etwas gefällt das

myTemplate.html

{{#each getCategories}} 
    {{#each getForum categoryName}} // Assuming that in your category db you have categoryName field 
    {{nameForum}} 
    {{/each}} 
{{each}} 

myTemplate.js

Template.myTemplate.helpers({ 
    getCategories: function() { 
     return Category.find({}); 
    }, 
    getForum: function(category) { 
     return Forum.find({"category": category}); 
    } 
}) 

Grundsätzlich bewegen Sie die Logik des Forums in Ihrer Vorlage Helfer Abrufen

+0

Vielen Dank für Ihre Antwort. Was meiner Meinung nach in Ihrer Antwort fehlt, ist, dass ich in der Vorlage noch die Kategorie "Sport" angeben muss. Idealerweise möchte ich, dass es automatisch alle Kategorien durchläuft. Würde so etwas funktionieren: (Ich kann es jetzt nicht ausprobieren, wo ich bin): {{# jedes getForum category.name}}? – Ivo

+0

Meine Antwort wurde aktualisiert –