我正在使用https://github.com/aldeed/meteor-autoform作为我的一个流星集合。我正在使用quickForm并输入insert。以下是相关代码:
<template name="postInsert">
<legend>Add your story here</legend>
{{> quickForm collection="Posts" id="insertPostForm" type="insert" buttonContent="Post!" resetOnSuccess=true}}
</template>
此表单成功提交并创建帖子。但它没有显示成功消息。我知道我可以使用onSuccess钩子并编写我自己的成功消息。但我想知道是否有一种使用autoform配置显示成功消息的标准方法?
我查看了github上的文档并进行了一些搜索,但所有解决方案都指向使用onSuccess钩子。这里的任何指针都很受欢迎
答案 0 :(得分:17)
经过广泛搜索后,onSuccess钩子是显示成功消息的标准方式。以下是我对完整性以及将来可能偶然发现此问题的其他人的实施。
新Autoform 6.0.0
onSuccess: function(formType, result) {
FlashMessages.sendSuccess('Success!');
Router.go("/posts");
},
OLD
AutoForm.addHooks(['postInsert', 'postUpdate'], {
onSuccess: function(operation, result, template) {
FlashMessages.sendSuccess('Success!');
Router.go("/posts");
}
});
AutoForm.addHooks 的使用使代码DRY保持允许重用以进行更新以及插入操作。
此外,我使用优秀的flash-messages来显示我的所有用户消息。强烈推荐。
答案 1 :(得分:3)
我没有足够的声誉来评论,但根据code,似乎Autoform.addHooks现在采用formId。
所以你要使用
将你的autoform绑定到id'insertPostForm'guessesTaken
答案 2 :(得分:1)
根据github上的文档, onSuccess hook
的签名已更改AutoForm.addHooks(['yourForm'],{
onSuccess: function(formType, result) {
Router.go('page',{_id: this.docId});
}
});
最好检查最新签名:https://github.com/aldeed/meteor-autoform#callbackshooks