我正在使用aldeed:autoform,aldeed:simple-schema,aldeed:collection2和mdg:validated-method用於對集合執行插入操作。SimpleSchema無效密鑰「_id required」
這是自動窗體的tempalte:
<template name="Areas_agregar">
{{> Titulos_modulos title="Areas" subtitle="Agregar" cerrar=true}}
{{
#autoForm
collection=areasColecction
id="areas_agregar"
type="method"
meteormethod="areas.insert"
}}
{{> afQuickField name='nombre'}}
{{> afArrayField name='subareas'}}
<button type="submit">Save</button>
<button type="reset">Reset Form</button>
{{/autoForm}}
</template>
這是集合的模式:
Areas.schema = new SimpleSchema({
_id: {
type: String,
regEx: SimpleSchema.RegEx.Id
},
nombre: {
type: String,
label: 'Nombre'
},
subareas: {
type: [String],
label: 'Subareas'
}
});
這是插入方法:
const AREA_FIELDS_ONLY = Areas.simpleSchema().pick(['nombre', 'subareas', 'subareas.$']).validator({ clean: true, filter: false });
export const insert = new ValidatedMethod({
name: 'areas.insert',
validate: AREA_FIELDS_ONLY,
run({ nombre, subareas }) {
const area = {
nombre,
subareas
};
Areas.insert(area);
},
});
而我在Chrome的開發控制檯中出現以下錯誤:
間爲 「areas_agregar」 上下文SimpleSchema無效的鍵: 陣列[1] 0:對象 名: 「_id」 類型: 「必需的」 值:空 原:對象 長度:1 原型:Array [0]
就像錯誤顯示,問我爲_id字段的值,但我在插入更新,它沒有任何意義。
任何想法可能會出錯?
如果你使'_id''可選:true',那麼你的插入將工作,流星會自動插入'_id' –
是的!這工作。但是爲什麼在'todos'示例項目中,'_id'字段中沒有'_id optional:true'? –
該項目是否使用autoform? –