У меня есть две формы и две схемы, которые не имеют ничего общего. Но мне все равно нужно, чтобы они хранились в одной коллекции.
Eg.:
schema1 = new SimpleSchema({ field1, field2, field3 });
collection.attachSchema(schema1);
schema2 = new SimpleSchema({ fieldX, fieldY, fieldZ });
collection.attachSchema(schema2);
Из документации Collection2. подразумевается, что описанный выше метод фактически объединит обе схемы в одну большую схему. Это означает, что обе формы должны иметь все поля, принадлежащие обеим схемам.
Это означает, что у меня не может быть автоформы только со схемой1 и другой автоформы только со схемой2.
В соответствии с документацией я попытался реализовать replace: true, благодаря чему схема каждый раз перезаписывается. (По крайней мере я так понимаю - они не сливаются в большую схему)
Eg:
schema1 = new SimpleSchema({ field1, field2, field3 });
collection.attachSchema(schema1, {replace: true});
schema2 = new SimpleSchema({ fieldX, fieldY, fieldZ });
collection.attachSchema(schema2 {replace: true});
Вышеприведенное по-прежнему не устраняет проблему, и каким-то образом схемы все еще объединяются. Это означает, что я все еще получаю уведомление о том, что FieldX пуст в autoform1, даже если для заполнения fieldX не предусмотрено.
Я также попробовал другой подход, в котором вы используете варианты.
Eg.:
schema1 = new SimpleSchema({ field1, field2, field3 });
collection.attachSchema(schema1, {selector: {type: 'forForm1'}});
schema2 = new SimpleSchema({ fieldX, fieldY, fieldZ });
collection.attachSchema(schema2, {selector: {type: 'forForm2'}});
Когда я реализую вышеизложенное, я получаю сообщение об ошибке автоформы, говорящее о том, что аргумент doc должен быть передан при работе с несколькими схемами.
Как именно мне это сделать?
В документации конкретно указано:
Теперь обе схемы прилагаются. Когда вы вставляете документ, где тип: «простой» в документе, он будет проверяться только по схеме SimpleProductSchema. Когда вы вставляете документ, где type: 'variant' в документе, он будет проверяться только на VariantProductSchema.
Я не знаю, как мне передать doc = ???? в шаблоне. Может ли кто-нибудь направить меня?
Это мой шаблон автоформы:
Форма1:
{{#autoForm collection = "pgTemplates" type ="insert" doc= ???? id ="InsertForm1" }}
{{#each afFieldNames}}
{{> afQuickField name=this.name options = afOptionsFromSchema }}
{{/each}}
Форма2:
{{#autoForm collection = "pgTemplates" type ="insert" doc= ???? id ="InsertForm1" }}
{{#each afFieldNames}}
{{> afQuickField name=this.name options = afOptionsFromSchema }}
{{/each}}