2012-12-14 102 views
0

我是新來的sencha,所以我確信我只是在這裏錯過了一些簡單的東西。我有一個休息服務,我需要能夠加載我的商店爲我的列表視圖。Sencha Touch:使用Rest代理的列表加載商店

這裏是我的模型與代理:

Ext.define('UserModel', { 
extend: 'Ext.data.Model', 

config: { 
    fields: [ 
     { name: 'UserId', type: 'int' }, 
     { name: 'FullName', type: 'string' } 
    ], 

    proxy: { 
     type: 'rest', 
     url: '/rest/user', 
     reader: { 
      type: 'json', 
      root: 'user' 
     } 
    } 
} 
}); 

而這個代碼工作正常的GET請求。所以我知道我可以和我的休息服務交談。

var User = Ext.ModelMgr.getModel('UserModel'); 

    User.load(10058, { 
     success: function (user) { 
      console.log("Loaded user: " + user.get('UserId') + ", FullName: " + user.get('FullName')); 
     } 
    }); 

我的問題是,當將代理代碼添加到商店時,我無法將數據加載到我的列表視圖中。如何將參數傳遞給其餘服務並加載商店?

Ext.define('UserStore', { 
extend: 'Ext.data.Store', 

config: { 
    model: 'UserModel', 
    proxy: { 
     type: 'rest', 
     url: '/rest/user', 
     reader: { 
      type: 'json', 
      root: 'user' 
     }, 
     autoLoad: true 
    }, 
    sorters: 'FullName', 
    grouper: function(record) { 
     return record.get('FullName')[0];  
    } 
} 

}); 

這是我的列表視圖:

Ext.define('UserView', { 
extend: 'Ext.List', 
xtype: 'userView', 

config: { 
    scrollable: 'vertical', 
    loadingText: "Loading your social connections . . .", 
    indexBar: true, 
    singleSelect: true, 
    grouped: true, 
    cls: 'customGroupListHeader', 
    itemTpl: '{FullName}', 
    store: 'UserStore', 
    onItemDisclosure: true 
} 
}); 

回答

0

哈哈!我知道這很簡單。商店代理中的「autoLoad:true」需要位於代理的括號之外。

Ext.define('UserStore', { 
extend: 'Ext.data.Store', 

    config: { 
     model: 'UserModel', 
     autoLoad: true, 
相關問題