Search code examples
javascriptextjssencha-touch-2

why label in view get data from controller is null


i have write code in controller launch function .get data from store,and use Ext.each to get string in records,and use setdata to pass string type data to make label display . if i write static string it work, but it dont work when i pass string from records + describe string.

code in controller launch funtion

storeId.load({
        callback: function(records, operation, success){
            Ext.each(records, function(record) {
                console.log(record.get('data'));
                console.log(record.get('earn'));                    
                var data = record.get('data');                        
                var string = '{data:\'' + record.get('data') + '\',earn:\'' + record.get('earn') + '\'}';
                console.log(string);
            //Ext.getCmp('datalabel').setData({data: '10000',earn: '10000'});----work
            Ext.getCmp('datalabel').setData(string);-----not work display null
            });
        }
    });

code in view

                        xtype: 'label',
                        id: 'datalabel',
                        flex: 1,
                        store: 'datainterests',
                        tpl: 'money:{data},interests:{earn}',

Solution

  • This code works prove that setData() apply object type argument instead of string.

    Ext.getCmp('datalabel').setData({data: '10000',earn: '10000'});
    

    You may try :

    Ext.getCmp('datalabel').setData({
        data: record.get('data'),
        earn: record.get('earn')
    });
    

    or

    Ext.getCmp('datalabel').setData(record.raw);