0

我正在构建一个与订单取货相关的应用程序。我有一个列出订单项目的列表。应用程序必须向 Rest API 发送 PUT 请求,以便在用户点击列表时更新记录(特别是在列表项中的按钮上)。我的问题是,如果我点击列表项中的一个按钮,它会发送多个 PUT 请求,但我认为它一次应该只有一个请求。

我的项目点击功能:

 var store=Ext.data.StoreManager.lookup('storeOrderItem');
 var index = store.findExact('orderitem_id', record.get('orderitem_id')),
     orderItem = store.getAt(index);

 //updating item store
 orderItem.set('order_picker_id',NCAPP.app.loggedInUser.user_id);
 if(NCAPP.app.currentWarehouse.is_main_store==0)
 {
     orderItem.set('pickup_status','picked@anotherlocation');
 }
 else
 {
     orderItem.set('pickup_status','picked');
 }
 store.setProxy({url:NCAPP.app.baseApiUrl+'/order/item/'+record.get('orderitem_id')});
 orderItem.setDirty(true);
 //updating with proxy (changes database)
 store.sync();

当我在 google chrome 调试屏幕中进行监控时,我看到请求已经发送了 3 次。(商店装载了三件商品)。如何避免每个项目点击三个请求并且只有一个请求?谢谢 在此处输入图像描述

4

1 回答 1

0

您必须首先确认 itemtap() 仅被调用一次,然后从那里调用控制器中的函数

在列表中添加 itemtap 侦听器,如下所示。

listeners: {
    itemtap: function(dataview, index, item, e) {
            this.up('xtype').fireEvent('controllerfn');

               }
               }
于 2013-05-17T18:05:37.577 回答