2016-06-09 20 views
0

Ich versuche, einen einzelnen Datensatz aus meiner # jede Schleife von Elementen in seine eigene Ansicht zu öffnen, indem Sie auf einen Link klicken, der "mehr sehen" , die mich zu dem einzelnen Artikel bringen wird. Ich habe meinen Flow-Router und seine Aufarbeitung, aber ich kann nicht die Daten sehen, die in kommen angenommen hat.Meteor: einzelne Post-Ansicht, über ID und Flow-Router analysiert keine Daten aus der Sammlung

die Vorlage Helfer für die einzelnen Artikel wie dieser

Template.collectionSingle.helpers({ 
    articles: function() { 
     var id = FlowRouter.getParam('_id') 
     return theCollection.findOne({_id: id}); 
    } 
    }); 

} 

sieht meine Strecke

sieht wie folgt aus
FlowRouter.route('/collection/:_id', { 
    name: 'collection', 
    action() { 
     BlazeLayout.render("AppLayout", {main: "collectionSingle"}); 
    } 
}); 

und die Vorlage "collectionSingle" sieht wie folgt aus

<template name="collectionSingle"> 
<h1>{{title}}</h1> 
<h1>This is a test</h1> 
    <img src="{{thumbnail}}" alt="" /> 
</template> 

wenn Ich navigiere zu http://localhost:3000/collection/thePublication-0 Alles, was ich sehe, ist die Testmeldung 'Dies ist ein Test', aber ich sehe weder das {{title}} noch das Thumbnail.

weiterhin, wenn ich ändern:

return theCollection.findOne({_id: id}); 

zum anderen eine meiner Sammlung:

return OtherCollection.findOne({_id: id}); 

http://localhost:3000/collection/thePublication-0 

gleich bleibt.

Wie kann ich erfolgreich eine einzelne Artikel-Seite für jeden meiner Artikel haben und sie mit Flow-Router richtig verknüpft haben?

Antwort

1

Sie tatsächlich benötigen, um Ihre Vorlage Helfer verwenden, die den Datenkontext zurückkehrt:

<template name="collectionSingle"> 
<h1>{{title}}</h1> 
<h1>This is a test</h1> 
{{#with articles}} 
    <img src="{{thumbnail}}" alt="" /> 
{{/with}} 
</template> 

Da Ihr articles Helfer ein einzelnes Dokument, das Sie {{#with articles}} verwenden zurück. Wenn es einen Cursor oder ein Array zurückgibt, würden Sie das mit {{#each articles}} übergehen. Die normale Konvention besteht darin, die Singularform für die erstere, die Pluralform für die letztere zu verwenden.

+0

Ich sehe @Michel ich wusste nicht über die {{# mit Artikeln}}. Nochmals vielen Dank für Ihre Hilfe, funktioniert perfekt. –