배열로 서브 스키마를 가져 오려고합니다. 문제를 해결할 올바른 방법이라고 생각합니다. 그러나 잘못 입력 한 경우 수정하십시오. AutoForm 패키지에서 제공하는 BooksSchema 예제를 기반으로 간단한 문제를 보여주는 예제를 제공합니다. 필자의 예에서는 Libraries 컬렉션이 있고 'Libraries'개체의 필드 중 하나가 해당 도서관의 책 컬렉션입니다. AutoForm을 렌더링해도 My Book 컬렉션에 정의 된대로 입력 레이블이 제공되지 않고 빈 텍스트 입력 필드가 하나만 표시됩니다.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"}}
정말 오랜 시간이 지금이 고민하고, 당신의 시간 동안 당신에게 사전에 너무 감사합니다! 특정 유형의
확장을 사용하여 두 스키마를 결합해야합니다. 예 : '''MainSchema.extend (SubSchema);''' – blueren
@blueren 시간 내 주셔서 대단히 감사합니다. 이 'extend'(편집 된 질문 참조)를 포함하도록 코드를 업데이트했지만 불행히도 내게 변경되지 않았습니다. – WalterB