显示从Autoform MeteorMethod调用抛出的错误消息的最佳方法是什么

Dav*_*veR 5 meteor

我有一个像这样的快速表格:

{{> quickForm架构= competitorSchema id ="newCompetitorForm"type ="method"buttonContent ="Save Competitor"meteormethod ="insertCompetitor"tid = tournament._id}}

这是一个模态弹出窗口BTW.

现在在方法代码中我有一个缺陷,没有在mongo插入操作中指定一个必需的字段,所以发生了什么:

  1. 客户端验证已通过(因为我填写了表单中的所有必填字段)
  2. 当实际插入发生时,collection2抛出了正确的错误,说字段X丢失了.

这被抛回给我,我在我的onError:auto form hook中捕获这个,如下所示:

onError: function(operation, error, template) {
    if(error){
        alert(error);
    }
}
Run Code Online (Sandbox Code Playgroud)

这可能是任何一般错误 - 出于任何原因BTW.

警报不是我想在这里使用的...因为它不是很好.Collection2抛出"错误:X是必需的"但我真的不想解析出字符串字段名称,因为它很难尝试将其与表单键匹配,因为看起来X实际上是标签.

我可以提出一些工作,比如填充特殊div或弹出模态等,但我真正想要的是自动表单为我处理这个通用表单级别验证错误(不是特定键).

有没有人知道自动窗体中是否有一种很好的方法可以向用户显示表单级别(不是特定于字段的错误)?我在文档中没有看到这一点.

我看到如何为特定字段使用addInvalidKeys等但我想要做的是使用addInvalidKeys之类的东西,没有键,所以它显示一个表单级错误消息等.

MrE*_*MrE 3

您可以从方法调用返回函数中返回任何您想要的内容,因此您可以将人类可读的消息作为字符串或对象返回。

如果警报不适合您,您可以使用模态框来发布一条友好的消息。

代码确实不多。当出现错误时,您可以填充 Session 变量并添加某种横幅 div。

如果您想要验证,那么将 SimpleSchema 与您的自动表单一起使用,它将自动工作,但这仅验证输入与架构匹配,而不验证后端插入错误等...