3

Autoform と CollectionFS、およびそれらを一緒に使用する方法について理解を深めるために、非常に小さな Meteor アプリケーションを作成しています。現在、次のパッケージですべてをセットアップしています。

iron:router, aldeed:autoform, aldeed:collection2, cfs:standard-packages,
cfs:filesystem, cfs:autoform

タイトルや著者などのデモのフィールドを使用して、SimpleSchema が添付された「Books」セットアップに割り当てられたサンプルの Mongo コレクションがあります。ファイルのアップロードに対応するコードは次のとおりです。

fileId: {
  type: String,
  autoform: {
    afFieldInput: {
      type: "cfs-file",
      collection: "images"
    }
  }
} 

FS.Collection コードは次のとおりです。

Images = new FS.Collection("images", {
 stores: [new FS.Store.FileSystem("images", {path: "~/uploads"})]
}); 

これはクイックフォームと連動しています:{{> quickForm collection="Books" id="insertBookForm" type="insert"}}

挿入は問題なく、次のように、スペースバーと「books」と呼ばれるヘルパー関数を使用して、ドキュメントを反復処理し、さまざまなフィールドを表示できます。

{{#each books}}
    <li>{{title}} by {{author}}</li>
{{/each}}

「ファイル」と呼ばれるコレクション全体を返すヘルパーを使用して、FS.Collection にアップロードされた画像を反復処理し、次のようにループすることもできます。

{{#each files}}
  <img src="{{this.url}}" />
{{/each}}

私が抱えている問題は、2つをリンクすることです。次の行に沿って何かを実行できるようにしたい:

{{#each books}}
  <li>{{title}}, by {{author}} <img src="The-Corresponding-Image}}" /></li>
{{/each}}

明らかに正確なレイアウトではありませんが、基本的には、対応するタイトルと作成者を含む画像を印刷して、必要に応じて collectionfs で autoform を使用できるようにしたいだけです。

Books コレクション内の特定のドキュメントから fileId を取得しようとして、それを に差し込んでImages.findOne({fileId: fileId})2 つをリンクしようとして困っています。

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1