我正在使用autoform来创建表单。我有下面的模板,在提交表单时正确地将数据插入到集合中。我想要做的是在成功完成“ContactDetails”集合的插入后,将记录插入另一个集合。
<template name="contactDetailsForm">
{{#if submitted}}
{{> quickForm collection="ContactDetails" omitFields="createdBy" doc=editingDoc id="contactDetailsForm" type="update"}}
{{else}}
{{> quickForm collection="ContactDetails" omitFields="createdBy" id="contactDetailsForm" type="insert"}}
{{/if}}
</template>
据我所知,我需要添加一个钩子。我真的不确定我在做什么。我想它看起来像这样:
AutoForm.addHooks(['contactDetailsForm'], {
after: {
insert: function(error, result) {
if (error) {
console.log("Insert Error:", error);
} else {
console.log("Insert Result:", result);
// NOW DO INSERT INTO OTHER COLLECTION
}
}
}
});
有人能告诉我如何在不同的集合中成功完成插入后,如何将记录插入另一个集合中?
对此的任何建议/帮助/示例都将深表感谢。
答案 0 :(得分:3)
matb33:collection-hooks
包是创建此类挂钩的标准方法。首先用
meteor add matb33:collection-hooks
然后创建你的钩子:
ContactDetails.after.insert(function(userId, doc) {
console.log("Inserted:", this._id);
...
});
答案 1 :(得分:1)
一般情况下,钩子还没有 - 但是它们在autoform中: https://github.com/aldeed/meteor-autoform#callbackshooks
如果您没有使用autoform,我会使用Meteor方法进行插入,您可以在插入第一个插入后执行插入后插入。 见https://www.discovermeteor.com/blog/meteor-methods-client-side-operations/