我有一些表单允许用户在我想要转换为使用AutoForm的同时将多个文档添加到集合中,但我无法做到最好。
例如,用户可以在学校中创建课程。课程可以有名字,科目和老师。我没有一次只添加一个类的表单,而是允许同时添加多个类的行。这是一个简单的示例,在我添加AutoForm之前它的外观。这给了我三行,每行都有一个名称,主题和教师列。
<form class="class-form">
<div class="table-row">
<input type="text" name="name[]" placeholder="name">
<input type="text" name="subject[]" placeholder="subject">
<input type="text" name="teacher[]" placeholder="teacher">
</div>
<div class="table-row">
<input type="text" name="name[]" placeholder="name">
<input type="text" name="subject[]" placeholder="subject">
<input type="text" name="teacher[]" placeholder="teacher">
</div>
<div class="table-row">
<input type="text" name="name[]" placeholder="name">
<input type="text" name="subject[]" placeholder="subject">
<input type="text" name="teacher[]" placeholder="teacher">
</div>
<button type="submit">Save</button>
</form>
我可以为类创建一个模式,并使用AutoForm一次为一个类创建一个表单,但是如何使用AutoForm在一个表单中创建多个文档,如上所述?
[这里的示例代码已经简化了很多。它使用Select2元素来选择主题和教师,实际代码中有更多的字段和s。此外,当行填满时,我会自动添加更多行。我保持这个例子简单,稍后将解决这些问题]
答案 0 :(得分:1)
我不确定是否可以在一个表单上插入多个文档,但是您可以在一个表单中添加子文档数组,例如:
ClassesCollection = new Mongo.Collection("classes");
ClassSchema = new SimpleSchema({
name: {
type: String
},
subject: {
type: String
},
teacher: {
type: String
}
});
ClassesSchema = new SimpleSchema({
classes: {
type: [ClassSchema]
}
});
ClassesCollection.attachSchema(ClassSchema);
这将为您生成一个表单,您可以在其中一次添加多个类,但是它们都将存储在&#34;类&#34;下的一个文档中。阵列。这可能是您的架构不受欢迎的变化。因此,您可以将autoForm扩展为具有该功能,或者坚持使用自定义解决方案。