这是我的架构但是没有显示其字段名称和金额的成分对象,而且我的图片上传文件也没有显示。你能告诉我我的错误以及如何纠正它吗?
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}}
答案 0 :(得分:1)
首先,架构未正确定义。如果要使ingredients
属性成为一个对象数组,则需要将type
定义为数组,如下所示:
ingredients: {
type: [Object],
label:"Ingredients",
minCount: 1
}
然后,在模板中,您使用大写字母I而不是小写字母来获取属性的名称,因为它在模式中定义。将名称更改为ingredients
{{> afQuickField name='ingredients'}}
您无需在模板中包含ingredients
的子属性。 Autoform将自动为对象数组的子属性创建UI。
对于文件上载,输入类型必须与架构中的定义匹配。尝试将模板中的字段定义更改为:
{{> afFieldInput name='image'}}