gpt4 book ai didi

javascript - 通过模板传递方法参数

转载 作者:行者123 更新时间:2023-11-27 23:26:56 24 4
gpt4 key购买 nike

我在 meteor (我使用模式)中有以下方法,我调用它是为了在数据库中插入对象。

userAddOrder: function(newOrder, prize) {
var currentPrize;
if (prize == undefined) {
currentPrize = undefined;
}
else{
currentPrize = prize;
}
// Ininitalize the newOrder fields.
// Check if someone is logged in
if(this.userId) {
newOrder.userId = this.userId;
// Set the weight and price to be processed by the admin in the future
newOrder.weight = undefined;
newOrder.price = currentPrize;
newOrder.status = false;
newOrder.receiveDate = new Date();
newOrder.deliveryDate = new Date();
Orders.insert(newOrder);
} else {
return;
}
},

一般来说,我必须向它传递一个“prize”参数作为参数。问题是,尽管我配置了奖品,但我找不到通过模板将其传递给方法的方法。我尝试的一种方法是制作一个助手并尝试通过它:

{{#autoForm schema="UserOrderSchema" id="userInsertOrderForm" type="method" meteormethod="userAddOrder,prizeRequest"}}  

但它返回一个错误:

"method not found"

另一种方法是使用简单的表单(不是提供的自动表单)来调用js文件中的方法。我认为第二个应该可以工作,但我不想重写整个模板。有没有办法不用它来做到这一点?

最佳答案

如自动表单文档中所述,该方法必须采用一个参数:

“将使用您在meteormethod属性中指定的名称调用服务器方法。传递单个参数doc,这是表单提交所生成的文档。”

因此,使用基于方法的表单不会对您有帮助。相反,使用“正常”形式:

{{#autoForm schema="UserOrderSchema" id="userInsertOrderForm" type="normal"}} 

然后,添加自动表单提交 Hook :

AutoForm.hooks({
userInsertOrderForm: {
onSubmit: function (insertDoc, updateDoc, currentDoc) {
var prize = ...;
Meteor.call('userAddOrder', prize, function(err, result) {
if (!err) {
this.done();
} else {
this.done(new Error("Submission failed"));
});
});

return false;
}
}
});

关于javascript - 通过模板传递方法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34896046/

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