-1

私は Sencha Touch2 を初めて使用し、プロキシを使用する前に単純なストアから任意のデータをロードしてアプリを開始しようとしています。私のビューは表示されますが、データが入力されていません。この質問を見たことがありますが、解決に役立ったものは何もありません。どんな助けと忍耐も感謝します。よろしくお願いします!

私のモデル

Ext.define('SenchaFirstApp.model.Distributors', {
       extend: 'Ext.data.Model',
       config: {
             fields: [
                {name: 't', type: 'string'},
                {name: 'distr', type: 'string'},
                {name: 'group', type: 'string'},
                {name: 'site', type: 'string'},
                {name: 'status', type: 'string'},
                {name: 'actuve', type: 'string'},
                {name: 'assigned', type: 'string'},
                {name: 'state', type: 'string'},
                {name: 'schedule', type: 'string'},
                {name: 'finished', type: 'string'} ],
       }
       });

私の見解

var distrStore = Ext.create('SenchaFirstApp.store.DistributorStore');
Ext.define('SenchaFirstApp.view.DistributorView', {
           extend: 'Ext.dataview.DataView',
           requires: [distrStore, 'Ext.data.Store', 'Ext.dataview.List'],
           model: 'SenchaFirstApp.model.Distributors',
           xtype: 'mainlist',
           fullscreen: true,

       config:
       {
           fullscreen: true,
           layout: 'fit',
           border: 5,
           title: 'Distributors',
           html: 'My datalist',
           autoLoad: true,

           items:{
               title: 'Setup',
               xtype:'list',
               store: distrStore,
               fields: [
                  {
                      text: 'T',
                      width: 1,
                      sortable: false,
                      hideable: false,
                      dataIndex: 't'
                  },
                  {
                      text: 'Distributor',
                      width: 50,
                      sortable: false,
                      hideable: false,
                      dataIndex: 'distr'
                  },
                  {
                      text: 'Group',
                      width: 20,
                      sortable: false,
                      hideable: false,
                      dataIndex: 'group'
                  },
                  {
                      text: 'Site Name',
                      width: 20,
                      sortable: false,
                      hideable: false,
                      dataIndex: 't'
                  },
                  {
                      text: 'Status',
                      width: 5,
                      sortable: false,
                      hideable: false,
                      dataIndex: 'status'
                  },
                  {
                      text: 'Active',
                      width: 5,
                      sortable: false,
                      hideable: false,
                      dataIndex: 'active'
                  },
                  {
                      text: 'State',
                      width: 2,
                      sortable: false,
                      hideable: false,
                      dataIndex: 'state'
                  },
                  {
                      text: 'Scheduled',
                      width: 10,
                      sortable: false,
                      hideable: false,
                      dataIndex: 'schedule'
                  },
                  {
                      text: 'Finished',
                      width: 10,
                      sortable: false,
                      hideable: false,
                      dataIndex: 'finished'
                  }
            ]
                  }

       }  
});

distrStore.load();

私の店

Ext.define('SenchaFirstApp.store.DistributorStore', {
                        extend: 'Ext.data.Store',
                        requires: ['SenchaFirstApp.model.Distributors', 'Ext.dataview.DataView'],

                        config: {
                        //  xtype: 'distrlist',
                            storeId: 'mainlist',
                        model: 'SenchaFirstApp.model.Distributors',
                        autoLoad: true,
                        data: [
                               {t: 'S', distr: 'Smart Systems', site: 'Smart Temps', status: "done", active: 'Yes', assigned: 'Me', state: 'IN',                                                                        schedule: 'today', finished: 'today'},
                               {t: 'I', distr: 'People', site: 'This One', status: "done", active: 'Yes', assigned: 'You', state: 'NC', schedule:                                                   'yesterday', finished: 'tomorrow'}
                              ]}});

app.js

Ext.Loader.setConfig({enabled:true});
Ext.application({
    name: 'SenchaFirstApp',
    stores: ['DistributorStore'],
    models: ['Distributors'],
    views: ['DistributorView'],
    requires: ['SenchaFirstApp.view.DistributorView', 'Ext.dataview.DataView', 'SenchaFirstApp.model.Distributors', 'SenchaFirstApp.store.DistributorStore',    'Ext.dataview.List'],

launch: function() {    
    Ext.fly('appLoadingIndicator');
    Ext.Viewport.add(Ext.create('SenchaFirstApp.view.DistributorView'));
    }   

});

4

1 に答える 1

2

ストアのインスタンスを作成する必要はありません:

var distrStore = Ext.create('SenchaFirstApp.store.DistributorStore');

アプリケーションでストアを定義すると...

Ext.application({
    stores: ['DistributorStore'],
    ...
});

...自動的に作成されます。ビューでストアの参照を取得するには、次の名前の文字列を使用するだけです。

{
    xtype: 'list',
    store: 'DistributorStore',
    ...
}

その他の注意事項

  • ストア構成で true に.load()設定しているため、使用してロードする必要もありません。autoLoad
  • Ext.Containerあなたの見解はではなく拡張するべきExt.dataview.DataViewです。DataView は、データを表示するために使用されます (基本的には抽象Ext.Listです。アイテムとしてリストがあるため、コンテナー内に配置するだけです。
  • fullscreen: trueクラスと構成で設定しました。構成内に配置するだけで済みますが、既にフルスクリーンになっているビューを作成してExt.Viewport(内の) に挿入しているため、実際には必要ありません。app.js
  • fieldsリスト内に設定は必要ありません。を使用しitemTplて、各行のテンプレートを作成する必要があります。
于 2012-09-11T22:10:20.630 に答える