【发布时间】:2017-10-22 02:04:48
【问题描述】:
我试图让子模式作为一个数组工作,我认为这是处理我的问题的正确方法(但如果我错了,请纠正我!)。我提供了一个简化的工作示例来显示我的问题,基于 AutoForm 包提供的 BooksSchema 示例。在我的示例中,我有一个图书馆集合,并且“图书馆”对象中的一个字段应该是图书馆的图书集合。渲染 AutoForm 并没有给我 Book 集合中定义的任何输入标签,而是只显示一 (1) 个空文本输入字段。
架构:
import SimpleSchema from 'simpl-schema';
SimpleSchema.extendOptions(['autoform']);
BooksSchema = new SimpleSchema({
title: {
type: String,
label: "Title",
max: 200
},
author: {
type: String,
label: "Author"
},
copies: {
type: Number,
label: "Number of copies",
min: 0
},
lastCheckedOut: {
type: Date,
label: "Last date this book was checked out",
optional: true
},
summary: {
type: String,
label: "Brief summary",
optional: true,
max: 1000
}
}, { tracker: Tracker });
LibrariesSchema = new SimpleSchema({
collection: {
type: Array
},
'collection.$': {
type: BooksSchema,
minCount: 1
}
});
LibrariesSchema.extend(BooksSchema);
Libraries = new Mongo.Collection("libraries");
Libraries.attachSchema(LibrariesSchema);
自动表格:
{{> quickForm collection="Libraries" id="insertBookForm" type="insert"}}
非常感谢您抽出宝贵时间,真的为此苦苦挣扎了很长时间!
【问题讨论】:
-
您必须使用扩展来组合两个模式。例如 -
MainSchema.extend(SubSchema); -
@blueren 非常感谢您抽出宝贵的时间。我更新了我的代码以包含此“扩展”(请参阅已编辑的问题),但不幸的是它并没有对我造成任何更改。
标签: meteor meteor-autoform simple-schema