サブームが配列として機能するようにしようとしていますが、これは私の問題を処理する正しい方法だと思いますが、間違っていると私を修正してください!私は、AutoFormパッケージによって提供されるBooksSchemaの例に基づいて、私の問題を示す簡単な作業例を提供します。私の例では、私はライブラリのコレクションを持っており、 'ライブラリ'オブジェクトのフィールドの1つは、図書館の本のコレクションであると考えられています。オートフォームをレンダリングしても、ブックコレクションに定義されている入力ラベルは表示されませんが、空のテキスト入力フィールドは1つだけ表示されます。AutoForm、SimpleSchemaの配列項目としてのサブスキーマ
スキーマ:
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"}}
本当に長い時間が今のためにこれで苦労して、あなたの時間を事前にありがとうございました!特定の種類の
2つのスキーマを結合するには、extendを使用する必要があります。例: '' 'MainSchema.extend(SubSchema);' '' – blueren
@bluerenありがとうございます。私はこの 'extend'(編集された質問を参照)を含めるようにコードを更新しましたが、残念ながら私には何の変更もありませんでした。 – WalterB