0

这是我的架构但是没有显示带有字段名称和数量的成分对象,也没有显示我的图像上传文件。所以你能告诉我我的错误以及如何纠正它吗?

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}}
4

1 回答 1

1

首先,模式定义不正确。如果要将ingredients属性设为对象数组,则需要将 定义type为数组,如下所示:

ingredients: {
    type: [Object],
    label:"Ingredients",
    minCount: 1
}

然后,在您的模板中,您可以使用大写 I 而不是小写的属性名称,因为它在架构中定义。将名称更改为ingredients

{{> afQuickField name='ingredients'}}

您不需要ingredients在模板中包含 的子属性。Autoform 将自动为对象数组的子属性创建 UI。

对于文件上传,输入类型必须与架构中的定义相匹配。尝试将模板中的字段定义更改为:

{{> afFieldInput name='image'}}
于 2015-10-25T17:55:08.333 回答