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 に答える