Sencha Touch 2:存储同步未按预期工作

时间:2013-05-17 10:18:36

标签: sencha-touch sencha-touch-2 sencha-touch-2.1

我正在构建与订单取件相关的应用。我有一个列出订单商品的清单。应用程序必须将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();

当我在谷歌浏览器调试屏幕中监控时,我看到请求已被发送三次。 (商店装有三件物品)。如何避免这三个请求,每个项目只有一个请求?谢谢 enter image description here

1 个答案:

答案 0 :(得分:0)

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

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

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

               }
               }