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

时间:2015-01-31 14:34:28

标签: meteor

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

{{> quickForm schema = competitorSchema id =“newCompetitorForm”type =“method”buttonContent =“Save Competitor”meteormethod =“insertCompetitor”tid = tournament._id}}

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

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

  1. 传递了客户端验证(因为我填写了表单中的所有必填字段)
  2. 当实际插入发生时,collection2抛出了正确的错误,说字段X丢失了。
  3. 这被抛回给我,我在我的onError:auto form hook中捕捉到了这样:

    onError: function(operation, error, template) {
        if(error){
            alert(error);
        }
    }
    

    这可能是任何一般错误 - 无论出于何种原因BTW。

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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

这真的不是很多代码。 您可以在出现错误时填充Session变量,并添加某种横幅div。

如果你想要验证,那么在你的autoform中使用SimpleSchema它会自动运行,但是只验证输入与Schema匹配,而不是后端插入错误等...