我试图让子程序作为一个数组工作,我认为这是处理我的问题的正确方法(但如果我错了,请纠正我!)。我提供了一个简化的工作示例来显示我的问题,基于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"}}
非常感谢您的时间,现在很长时间以来一直在努力奋斗!
答案 0 :(得分:1)
就我而言,我确实能够通过使用约翰·史密斯(John Smith)的示例而不使用方括号来解决此问题。
LibrariesSchema = new SimpleSchema({
'books': {
type: BooksSchema,
minCount: 1
}
});
答案 1 :(得分:0)
check()
在[SomeType]
或模式定义中使用的特定类型的数组被指定为[String]
,例如。 <{1}},或[BooksSchema]
。