我想在数据库中以秒为单位存储时间值。
在表单中,用户应该能够将其键入String(MM:SS)。提交后,字符串(MM:SS)应转换为秒。这就是为什么表单被验证的模式不同于用于在后端验证的模式(在将其写入数据库之前)。
所以我做了这里的假设(https://github.com/aldeed/meteor-autoform#autoform-1)并且我定义了两个模式,一个用于表单(使用time.type =" String"),另一个我附加到集合(time.type = Number)。
在模板中,我设置了两个参数,collection="TimeItem"
和schema="SpecialFormSchema
。
最后,表单始终使用HTML编号输入字段呈现,并忽略表单架构。
有人可以帮忙吗? 提前谢谢!
答案 0 :(得分:0)
不支持集合和架构。你必须选择其中一个。
尝试使用挂钩来执行您要执行的操作: https://github.com/aldeed/meteor-autoform#callbackshooks
答案 1 :(得分:0)
It actually works as it should. My silly mistake was to experiment with different templates and worked on the wrong one and therefore did not see any results.
The working javascript:
// schema for collection
var schema = {
time: {
label: "Time (MM:SS)",
type: Number // !!!
},
// ...
};
SongsSchema = new SimpleSchema(schema);
Songs.attachSchema(SongsSchema);
// schema for form validation
schema.time.type = String // changing from Number to String!
SongsSchemaForm = new SimpleSchema(schema);
What the template looks like:
{{>quickForm
id="..."
type="insert"
collection="Songs"
schema="SongsSchemaForm"
}}