Поля загрузки объекта и файла не отображаются
Вот моя схема Но объект ингредиентов с его полями, названием и количеством не отображается, а также не загружено мое изображение загрузки. Так что вы можете сказать мне мою ошибку и как ее исправить?
Recipes.attachSchema(new SimpleSchema({
name: {
type: String,
label: "Recipe Name",
max: 100
},
ingredients: {
type: Object,
label:"Ingredients",
minCount: 1
},
"ingredients.$.name": {
type: String
},
"ingredients.$.amount": {
type: String
},
description: {
type: String,
label: "How to prepare ",
},
time: {
type: Number,
label: "Time (Minutes)",
},
image: {
type: String,
autoform: {
afFieldInput: {
type: 'fileUpload',
collection: 'RecipesImages',
label: 'Recipe Picture'
}
}
},
createdAt: {
type: Date
}
}));
и вот я помещаю их с авто-формы в моем шаблоне
{{#autoForm collection="Recipes" id="insertRecipes" type="insert"}}
<fieldset>
<legend>Add a Recipe</legend>
{{> afQuickField name='name'}}
{{> afQuickField name='Ingredients'}}
{{> afQuickField name='Ingredients.name'}}
{{> afQuickField name='Ingredients.amount'}}
{{> afQuickField name='description' rows=6}}
{{> afQuickField name='time'}}
{{> afQuickField name='image'}}
</fieldset>
<button type="submit" class="btn btn-primary">Add Recipe</button>
{{/autoForm}}
1 ответ
Во-первых, схема не определена правильно. Если вы хотите сделать ingredients
Свойство массив объектов, которые вам нужно определить type
как массив, вот так:
ingredients: {
type: [Object],
label:"Ingredients",
minCount: 1
}
Затем в вашем шаблоне у вас есть имя свойства, использующее прописные буквы I вместо строчных, как это определено в схеме. Измените имя на ingredients
{{> afQuickField name='ingredients'}}
Вам не нужно включать вложенные свойства ingredients
в вашем шаблоне. Автоформа автоматически создаст пользовательский интерфейс для подчиненных свойств массива объектов.
Для загрузки файла тип ввода должен соответствовать определению в вашей схеме. Попробуйте изменить определение поля в вашем шаблоне на:
{{> afFieldInput name='image'}}