2017-01-05 1 views
1

Ich möchte Bilder aus 2 Feldern derselben Sammlung in meiner Meteor-Anwendung anzeigen. Ich verwende aldeed der SimpleSchema und Autoform wie folgt:Doppelte Iteration über 2 Felder in Meteor

fullwidthImage: { 
    type: [String], 
}, 
"fullwidthImage.$" : { 
    autoform: { 
    afFieldInput: { 
     type: 'fileUpload', 
     collection: 'Images' 
    } 
    } 
}, 
halfwidthImage: { 
    type: [String], 
}, 
"halfwidthImage.$" : { 
    autoform: { 
    afFieldInput: { 
     type: 'fileUpload', 
     collection: 'Images' 
    } 
    } 
} 

Solange gibt es Bilder in der Arrays, ich versuche, 1 volle Breite (FW) Bild anzuzeigen dann 2 halbe Breite (HW). Ziemlich genau wie so:

<------FW 1------> 
<--HW 1 | HW 2 --> 
<------FW 2------> 
<--HW 3 | HW 4 --> 

Da wir nicht Für Schleifen innerhalb Vorlagen verwenden können, ich bin eine harte Zeit versucht, herauszufinden, wie ich diese Arbeit in einem Helfer machen könnte. Ich dachte darüber nach, nur ein Bild-Array zu haben und durchzuschleifen, aber das ist nicht wirklich das, was ich erreichen möchte, da die Bilder unterschiedliche Größen haben werden. Verschachtelt Jede Schleife würde auch nicht funktionieren.

Jede Hilfe würde sehr geschätzt werden.

Antwort

0

Ich denke, Sie würden es sich viel einfacher machen, indem Sie eine einzige flache Liste von Bildern haben. Sie könnten dem Schema eine zusätzliche Eigenschaft hinzufügen, beispielsweise eine boolesche "isFullSize", und die verschiedenen Größen von Bildern auf diese Weise verfolgen.

Andernfalls suchen Sie eine Zusammenführung von 2 flachen Listen, entweder im Publish oder auf dem Client.

, wenn Sie es eine einzige flache Liste machte, könnten Sie so etwas tun:

<template name="PhotoFest"> 
    {{#each photo in photos}} 
     {{#if photo.isFullSize}} 
      {{> RenderFullSizePhoto photo=photo}} 
     {{else}} 
      {{> RenderHalfSizePhoto photo=photo}} 
     {{/if}} 
    {{/each}} 
</template> 

die CSS wäre ein wenig schwierig sein, aber das würde Ihre Looping behandeln.

Jetzt ist der schwierige Teil Ihre Daten in der richtigen Reihenfolge, etwa wie: F, h, h, F, h, h, F, h, h (wobei F = voll und h = halb).

das hängt wirklich davon ab, wo diese Daten herkommen. wenn du die volle Kontrolle hast und es bestellen kannst, großartig. Sie können Ihrem Schema ein Feld hinzufügen, das "ordinal" der Typnummer genannt wird und nur die Fotos 1 bis n nummerieren. In Ihrer Veröffentlichung würden Sie es sortieren.