1

我想在名为 Modules 的集合中的每个文档中构建一个上传文件的数组。我正在使用以下软件包:

  • aldeed:autoform
  • aldeed:collection2
  • cfs:标准包
  • cfs:gridfs
  • 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值是正确的,但fileId只有下面dummyId的 _id 而不是预期的 _id from fileStore

在应用程序的其他不涉及嵌套数组的部分中,上传文件按预期工作。在不涉及上传文件的应用程序的其他部分中,update-pushArray表单按预期工作。复杂之处在于将两者结合起来。

我做错了吗?还是 cfs:autoform 与update-pushArray表单类型不兼容?

4

1 回答 1

0

要使用 CFS,您的 #autoform 类型必须是“插入”或“方法”,请查看 cfs 文档以获取更多信息。希望能帮助到你!

于 2016-03-08T16:05:30.937 回答