我正在做一个餐厅管理系统,在表格排序部分,有一个带有ID标签的表格列表(例如T01,T02 ......),当我点击一个在桌子上,会有弹出食物菜单的模式,我可以点击添加任何食物的数量或减少它。
当我尝试在订购多个表格时添加任何食物的数量时,其他表格获得了我添加到当前表格的数量。
如果Table1: {Fish : 3}, Table2: {Fish : 0}
,如果我向Table2添加1个Fish,则Table1也会添加1
最终结果:Table1: {Fish : 4}, Table2: {Fish : 1}
如果我为Table1订购,那么关闭模式并返回订购部分以便为Table2订购,Table1将受到影响,如果我订购N个表,则会继续,所有表都会受到影响
如果我订购Table1,然后刷新浏览器,然后订购Table2,那么我订购的上一张表不受其影响
我正在使用Meteor 1.4
//Client
'click .js-order' : (e) => {
var tableId = e.currentTarget.id;
var findTableOrder = Order.findOne({table_id: tableId});
var orderList = {}
findTableOrder
? console.log("Order exist")
: Order.insert({table_id: tableId, order: orderList});
orderList = Order.findOne({table_id: tableId}).order
Session.set("quantityTrack", orderList);
$("#orderModal").modal("show");
$(".modal-title").text("Order for table: " + Tables.findOne({_id: tableId}).table_id);
$(".js-add-quantity").click((e) => { // Adding Event
var foodObjKey = ItemMeta.findOne({UID: e.currentTarget.id}).foodId;
if (orderList[foodObjKey] == null) {
orderList[foodObjKey] = 0;
}
orderList[foodObjKey] = orderList[foodObjKey] + 1;
Meteor.call("updateOrder", tableId, orderList, (err) => {
err
? console.log(err)
: console.log("Order Update Successful");
});
Session.set("quantityTrack", orderList);
}); // Adding event ends
}
//Server/methods
updateOrder : (tableid, orderlist) => {
Order.update({
table_id: tableid
}, {
$set: {
order: orderlist
}
});
});
如果我遗漏了任何内容,请告诉我,我会编辑帖子,并且事先非常感谢。
答案 0 :(得分:0)
由于模板帮助程序总是等待侦听事件,如果事件被触发,它会添加,所以在单击一个表后,它等待,然后单击另一个表,触发两个表都被添加,所以解决方案将添加事件与表的同一点击事件分开。