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 つをリンクしようとして困っています。
誰かが私を正しい方向に向けることができますか?