[AutoForm
当您要使用架构验证表单时非常有用,但是通常表单不包含架构中的所有数据,因此会出现验证错误。
例如,我有一个submit
按钮,在确定表单完全有效之前将其禁用,但是由于该表单不包含架构中的所有数据,因此它永远无法显示其完全有效。 >
说你有一个模式
ShoppingCartSchema = new SimpleSchema({ itemsOrdered: { type: [Object], optional: false, }, totalPrice: { type: Number, optional: false, }, customerAddress: { type: Object, optional: false }, systemGeneratedInfo: { type: Object, optional: true, blackbox: true }, }); ShoppingCarts.attachSchema(ShoppingCartSchema);
我的表单代码将类似于:
{{> quickForm collection="ShoppingCarts" id="shoppingCartForm" type="insert"}}
显然,您不希望totalPrice
成为用户自己填写的表单上的一项。 systemGeneratedInfo
可能是您的代码根据表单值生成的对象,但是它不会出现在表单本身上。
您可以将totalPrice
放入隐藏的表单元素中,但这似乎很粗略。您确实不想使用systemGeneratedInfo
来做到这一点。
[还有什么其他策略可以处理对象的未显示在表单上的项目,但是仍然可以完全验证前端显示的表单?
AutoForm在您要使用架构验证表单时非常有用,但是通常表单并不包含架构中的所有数据,因此会出现验证错误。例如,我有一个...
您必须使用schema
或quickForm
的autoForm
字段。然后,您创建模板助手以将架构传递给表单(或者,如果您的架构在全球可用,则只需将Schemas.someSchema
传递给表单)。