我想在名为 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
表单类型不兼容?