0

我是 Sencha Touch 2 的新手,难以管理 Store 中的数据。
这是我的商店和模型。

Ext.define("Evt", {
    extend : "Ext.data.Model",
    config : {
        fields : ['evt_name','evt_start_time','gln_name'],
    },
});

Ext.define('Evts', {
    extend : 'Ext.data.Store',
    config : {
        model : 'Evt',
        autoLoad:true,
        proxy : {
            type:'ajax',
            url:'eventslist.json'
        }
    },
});

var store = new Evts();

然后我想在定义容器时使用存储中的数据。

Ext.define("EvtsList",{
    extend : "Ext.Container",
    requires : "Ext.dataview.List",
    config : { 
        layout : {
        type : 'vbox',
        },
        items : [
            {  xtype : 'titlebar',
               title : "", // To use data 'evt_name' here
               id:'itemTitle',
               docked : "top",
               ui : "dark",
            }
        ],
    },
});

我知道使用 XTemplate 和 Ext.data.Store 可以在 dataview 中获取代理加载的数据,但是如何获取标题栏等其他类型的数据呢?
以及如何将 store 中的这些数据取出到 Object 中,以便我可以使用 get() 等方法?
我想我已经表达清楚了吗?对不起,我英语不好:)

4

1 回答 1

0

假设您需要evt_namestore.

Ext.define("EvtsList",{
    extend : "Ext.Container",
    requires : "Ext.dataview.List",
    config : { 
        layout : {
            type : 'vbox',
        },
        items : [
            {  xtype : 'titlebar',
             title : '', 
             id:'itemTitle',
             docked : "top",
             ui : "dark",
            }
        ],
    },
    initialize: function(){
        this.callParent(arguments);
         //data will be passed from Ext.create
         this.down('titlebar').setTitle(this.recordData.evt_name);
    }
});

创建商店并获取第一条记录

var store = new Evts();   //Create store

store.load({
    callback: function(records, operation, success) {
     var record = records[0]; //Get the first record        
      var data = record.getData(); //Get the data from the record 

      //Create `EvtsList` view and pass the data as config
       Ext.create('EvtsList', {recordData:data}); 

    },
    scope: this
});
于 2013-08-28T17:20:51.110 回答