gpt4 book ai didi

Meteor autoform,钩子(Hook)前的异步回调

转载 作者:行者123 更新时间:2023-12-04 15:33:36 25 4
gpt4 key购买 nike

我正在使用 Autoform 和 Slingshot 进行 S3 交互。当用户提交表单时,我想拦截进程,通过Slingshot上传文件到S3,扩展doc返回 downloadUrl 的对象然后此时,返回新更新的文档,并继续自动生成过程

我有以下代码:

{{#autoForm collection="Tabs" id="newTabForm" type="method" meteormethod="createTab"}}

...
<div class="modal-body">
<fieldset>
{{> afFormGroup name='downloadUrl' type='file' class='file-bag'}}
...

AutoForm.hooks({
newTabForm: {
before: {
insert: function(doc, template) {
console.log(doc);
var file = $('.file-bag')[0].files[0];

var self = this;
uploader.send(file, function(error, downloadUrl) {
if (error) { throw new Meteor.Error(error); }

doc = _.extend(doc, { downloadUrl: downloadUrl });
self.result(doc);
});
}
},
....

Meteor.methods({
createTab: function(doc) {
check(doc, TabSchema);

var priceInCents = doc.price * 100;
var extraTabAttributes = {
userId: Meteor.userId(),
price: priceInCents
};

_.extend(doc, extraTabAttributes);
Tabs.insert(doc, function(error, result) {
if (error) { return error; }
});
}

哪个在文档上正确存储 url(但看起来很奇怪,C://fakepath/filename..),但无法将其上传到 S3 服务器

还有一个问题,为什么 console.log(doc);在之前的钩子(Hook)中将任何内容记录到客户端/服务器?

最佳答案

我不熟悉自动表单,但我认为你的前钩子(Hook)是不正确的。

来自 https://github.com/aldeed/meteor-autoform#callbackshooks , 它说

before: {

// Replace `formType` with the form `type` attribute to which this hook applies
formType: function(doc) {}

}

所以在你的情况下,
insert: function(doc, template)

应该替换为
method: function(doc, template)

关于Meteor autoform,钩子(Hook)前的异步回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28188737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com