2013-05-17 86 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'); 

       } 
       }