同时将 quickForm 与集合和单独的模式一起使用似乎不起作用

Using quickForm with a collection and separate schema at the same time does not seem to work

我想在数据库中存储一个以秒为单位的时间值。

在表单中,用户应该能够将其键入为字符串 (MM:SS)。提交后,字符串 (MM:SS) 应转换为秒。这就是验证表单所依据的架构不同于用于在后端验证的架构(就在将其写入数据库之前)的原因。

所以我做了这里应该做的事情 (https://github.com/aldeed/meteor-autoform#autoform-1),我定义了两个模式,一个用于表单(time.type = "String"),另一个是我附加的集合(time.type = 数字)。

在模板中我设置了两个参数collection="TimeItem"schema="SpecialFormSchema

最终,表单始终呈现 HTML 数字输入字段并忽略表单架构

有人可以帮忙吗? 提前致谢!

不支持同时使用集合和架构。您必须选择其中之一。

尝试使用钩子来完成您想要做的事情: https://github.com/aldeed/meteor-autoform#callbackshooks

它实际上可以正常工作。我的愚蠢错误是尝试使用不同的模板并在错误的模板上工作,因此没有看到任何结果。

正在工作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);

模板的外观:

{{>quickForm
   id="..."
   type="insert"
   collection="Songs"
   schema="SongsSchemaForm"
}}