通过额外的param sencha触摸

时间:2013-04-01 05:15:20

标签: list sencha-touch-2 param extra

我是Sencha touch的新手。请参阅下面的代码。

Model.js

    Ext.define('bluebutton.model.BlueButton.MemberList', {
    extend: 'Ext.data.Model',
    config: {
        idProperty: 'memberlistModel',
        fields: [
            {  name :'memberId'},
            {  name: 'fullName' },
            {  name: 'phone' },
            {  name: 'age' },
            {  name: 'point' },
            {  name :'address'},
            {  name: 'emailAddress' },
            {  name: 'lastVisited'  },
            {  name: 'consumer_bbID'  },
            {  name: 'merchant_bbID'  },
            {  name: 'sessionId'  },
            {  name: 'deviceId'  },
            {  name: 'currentPoint'  },
        ],

        proxy: {
            type: 'rest',
//           url: 'http://192.168.251.131:8080/WebCommon/rest/BBWebService/getMembersList',

             url: 'http://mixsoloffice.no-ip.biz:82/WebCommon/rest/BBWebService/getMembersList',
//                  url: 'http://192.168.251.182:8080/WebCommon/rest/BBWebService/getMembersList',

            reader: 'json',
            actionMethods: {
                create: 'POST',
                read: 'GET',
                update: 'PUT',
                destroy: 'DELETE'
            },

                      noCache: false, // get rid of the '_dc' url parameter

                    extraParams: {
                        sessionId: "1",
                        deviceId: "1",
                        merchant_bbID: "merchant1",

                    // add as many as you need
                },

//            timeout:1000,
//            listeners: {
//                exception: function(proxy, response, operation) {
//                     alert("Connection Problem");
//                       Ext.Viewport.setMasked(false); // hide the load screen
//                       
//                  }
//               },

            reader: {
                type: 'json',
                rootProperty: 'membersList'

            },

            writer: {
                type: 'json',

            },
        }

    }

});

Store.js

Ext.define('bluebutton.store.BlueButton.MemberList', {
    extend: 'Ext.data.Store',
   requires: [
              'bluebutton.model.BlueButton.MemberList'
    ],

    config: {
        grouper: {
            groupFn: function (record) {
                return record.get('fullName')[0];
            }
        },


           model :'bluebutton.model.BlueButton.MemberList',
           storeId :'memberStore',
            autoLoad: true,
            clearOnPageLoad: false,  // This is true by default
            pageSize: 10,



    }
});

List.js

    Ext.define('bluebutton.view.BlueButton.MemberList', {
    extend: 'Ext.List',
    xtype: 'memberlistcard',
    requires: [
        'Ext.field.Select',
        'Ext.field.Search',

         'Ext.plugin.ListPaging',
        'Ext.plugin.PullRefresh',


    ],
    config: {

   styleHtmlContent: true,
        scrollable: 'vertical',

        singleSelect: true,

        grouped: true,
        variableHeights : false,
           store : { xclass : 'bluebutton.store.BlueButton.MemberList'},
            itemHeight :100,
        loadingText : 'loading',
        id :'memberlist',


            masked: {
                xtype: 'loadmask',
                message: 'loading...'
            }, // masked
       plugins: [

//                            { xclass: 'Ext.plugin.PullRefresh',
//                                pullRefreshText: 'Pull down for more updates!',
//                                refreshFn:function(loaded, arguments){
//                                 
//                                    var store = Ext.getCmp('transactionlist').getStore();    
//                                    alert(store.getValue());


////                                    var transactionlist = Ext.getCmp('transactionlist');    
////                                   
////                                    transactionlist.setStore(store);





//                                }
//                             
//                    
//                            },

//                          { 
//                               xclass: 'Ext.plugin.ListPaging',
////                                 autoPaging: true,
//                              
//                                 
//                        
//                        },
                ],
        id :'memberlist',
        emptyText: '<p class="no-search-results">No member record found matching that search</p>',
        itemTpl: Ext.create(
            'Ext.XTemplate',
            '<div class="tweet-wrapper">',
                '<table>',
                    '<tr>',
                        '<td rowspan="2" width="28%" >',
//                        '<div style="padding-left: 30px;">',
//                        '   <img src="{imgUrl}" width="140" height="130" /></div>',
                        '</td>',
                        '<td>',
                        '   <div class="tweet">',
                        '       <h3>{consumer_bbID}</h3>',
                         '      <h3>Name: {fullName}</h3>',
                        '       <h3>Point Avalaible : {currentPoint} , Last Visited : {lastVisited}</h3>',

                        '   </div>',
                        '</td>',
                    '</tr>',
                '</table>',
            '</div>'


        ),



    },


});

我需要在列表渲染之前分配额外的参数值。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

您可以从模型中取出代理,并将其设置为初始化方法中的存储。创建列表时,首先创建商店,然后专门设置商店列表。

选中此项:Dynamically define and load views with different proxy store in Sencha Touch 2,了解如何在初始化期间在商店中设置自定义代理。