1

Modules という名前のコレクション内の各ドキュメントに、アップロードされたファイルの配列を作成したいと考えています。次のパッケージを使用しています。

  • aldeed:オートフォーム
  • アルディード:コレクション2
  • cfs:標準パッケージ
  • cfs:グリッド
  • cfs:オートフォーム

コレクションとスキーマ (関連部分):

Modules = new Mongo.Collection('modules');
Modules.attachSchema (new SimpleSchema({
    slides: {
        type: Array,
        optional: true
    },
    'slides.$': {
        type: Object
    },
    'slides.$.fileId': {
        type: String,
        label: "Image File"
    },
    'slides.$.time': {
        type: Number,
        label: "Time in Seconds"
    }
}));

FileStore = new FS.Collection("fileStore", {
    stores: [new FS.Store.GridFS("fileStore")]
});

FileStore.allow({
    download: function() {
        return true;
    },
    fetch: null
});

HTML テンプレートの場合:

{{#autoForm collection="Modules" scope="slides" id="addSlideForm" type="update-pushArray" doc=this}}
    <fieldset>
        {{> afQuickField name="time" type="number"}}
        {{> afQuickField name="fileId" type="cfs-file" collection="fileStore"}}
    </fieldset>
    <button type="submit" class="btn btn-primary" >Add Slide</button>
{{/autoForm}}

送信ボタンを押すと、期待どおりに要素が配列にプッシュされます。time値は正しいですが、期待される _id from の代わりにあるfileIdだけです。dummyIdfileStore

ネストされた配列を含まないアプリケーションの他の部分では、ファイルのアップロードは期待どおりに機能します。ファイルのアップロードを伴わないアプリケーションの他の部分では、update-pushArrayフォームは期待どおりに機能します。複雑なのは、2 つを組み合わせることです。

私はこれを間違ってやっていますか?または、cfs:autoform はupdate-pushArrayフォーム タイプと互換性がないだけですか?

4

1 に答える 1

0

CFS を使用するには、#autoform タイプを「挿入」または「メソッド」にする必要があります。詳細については、cfs のドキュメントを確認してください。それが役に立てば幸い!

于 2016-03-08T16:05:30.937 に答える