2013-05-17 72 views
0

我正在构建与订单取件相关的应用。我有一个列出订单项目的列表。应用程序必须发送PUT请求到Rest API,以便在用户点击列表时(特别是在列表项中的按钮上)更新记录。我的问题是,如果我点击一个列表项中的按钮,它会发送多个PUT请求,但我认为它应该一次只有一个请求。Sencha Touch 2:商店同步无法按预期工作

我的项目轻点功能:

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','[email protected]'); 
} 
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(); 

,当我在谷歌浏览器调试屏幕显示器,我看到的申请已经三次发送。 (商店装载了三件物品)。我如何避免这三个请求,并且每个项目点击只有一个请求?感谢 enter image description here

+0

您可能需要首先在此onTap hanlder的开头添加console.log()以确保它被调用一次 – sha

回答

0

你必须先确认该itemtap()被调用一次,然后从那里调用一个函数在控制器

添加itemtap听众列表如下。

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

       } 
       }