我正在构建与订单取件相关的应用。我有一个列出订单商品的清单。应用程序必须将PUT请求发送到Rest API,以便在用户点击列表时更新记录(特别是在列表项中的按钮上)。我的问题是,如果我点击列表项中的一个按钮,它会发送多个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();
当我在谷歌浏览器调试屏幕中监控时,我看到请求已被发送三次。 (商店装有三件物品)。如何避免这三个请求,每个项目只有一个请求?谢谢
答案 0 :(得分:0)
首先必须确认itemtap()只被调用一次,然后从那里调用控制器中的函数
在列表中添加itemtap监听器,如下所示。
listeners: {
itemtap: function(dataview, index, item, e) {
this.up('xtype').fireEvent('controllerfn');
}
}