Поля загрузки объекта и файла не отображаются

Вот моя схема Но объект ингредиентов с его полями, названием и количеством не отображается, а также не загружено мое изображение загрузки. Так что вы можете сказать мне мою ошибку и как ее исправить?

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'}}
Другие вопросы по тегам