列表不显示

时间:2012-05-10 20:16:50

标签: sencha-touch-2

我无法在视图中显示列表。我似乎从我的ajax调用中获取数据。 我在这里肯定遗漏了一些东西。请帮忙。感谢

以下是详细信息: 数据:

Stations.json

[
{
    "id": "129",
    "stop": "NY Station",
},
{
    "id": "13",
    "stop": "Newark Station",
}

]

模型:

Ext.define('MyApp.model.Station', {
extend: 'Ext.data.Model',

config: {
    fields: [
         {name: 'id',  type: 'string'},
     {name: 'stop',  type: 'string'}

     ]
}

});

商店:

       Ext.define('MyApp.store.Stations', {
       extend  : 'Ext.data.Store',
       requires: ['MyApp.model.Station'],
    id: 'stations',
    xtype: 'stations',
    config  : {
        model : 'MyApp.model.Station',
        storeId: 'stationsStore',
        autoLoad : true,
        //sorters: 'stop',
        proxy: {
                type: 'ajax',
                url: 'Stations.json'

     }
     });

查看:

Ext.define('MyApp.view.MyService', {
extend: 'Ext.Panel',
xtype: 'stationsformPage',
fullscreen: true,
layout: 'vbox',
requires: [
    'MyApp.store.Stations',    
    'Ext.form.FieldSet',
    'Ext.field.Password',
    'Ext.SegmentedButton',
    'Ext.List'
  ],

config: {
    iconCls: 'settings',
    title: 'My Service',
   items: [
        {
            docked: 'top',
            xtype: 'toolbar',
            title: 'My Service'
        },

        {
            xtype: 'list',
            title: 'Stations',
            store: 'stationsStore',
            styleHtmlContent: true,
            itemTpl: '<div><strong>{stop}</strong> {id}</div>'

        },

    ]
   },
   initialize: function() {

        /*
        Ext.Ajax.request({
            scope : this,
            url: 'StationLocator.json',
            callback : function(options, success, response){
                    var json =   Ext.decode(response.responseText);
                    alert(response.responseText); //this works
                    alert(json[0].stop); //this works
            }
        });
        */

  }//initialize

  });

1 个答案:

答案 0 :(得分:2)

我把它放在TabPanel中。这会有帮助吗?它看起来像这样:

enter image description here

以下是我的观点:

Ext.define('MyApp.view.MyService', {
    extend: 'Ext.tab.Panel',
    xtype: 'stationsformPage',
    fullscreen: true,
    layout: {
        pack: 'center'
    },
    requires: [
        'MyApp.store.Stations',
        'Ext.form.FieldSet',
        'Ext.field.Password',
        'Ext.SegmentedButton',
        'Ext.List'
    ],
    config: {
      tabBarPosition:'bottom',
        layout: {
            type: 'card',
            animation: {
                duration: 300,
                easing: 'ease-in-out',
                type: 'slide',
                direction: 'left'
            }
        },
        fullscreen: true,
        title: 'My Service',
        items: [
            {
                docked: 'top',
                xtype: 'toolbar',
                title: 'My Service'
            },

            {
                xtype: 'list',
                title: 'Stations',
                store: 'stationsStore',
//                height: 600,
//                width: 400,
//                style: 'background-color: #c9c9c9;',
                styleHtmlContent: true,
                itemTpl: '{stop} {id}'

            }

        ]
    }

});




这是一个将列表放在常规面板中的版本:

enter image description here

Ext.define('MyApp.view.MyService', {
    extend: 'Ext.Panel',
    xtype: 'stationsformPage',
    fullscreen: true,
    layout: {
        pack: 'center'
    },
    requires: [
        'MyApp.store.Stations',
        'Ext.form.FieldSet',
        'Ext.field.Password',
        'Ext.SegmentedButton',
        'Ext.List'
    ],
    config: {

        fullscreen: true,
    layout: 'fit', // Specifying fit is important.  Won't see list without it
        title: 'My Service',
        items: [
            {
                docked: 'top',
                xtype: 'toolbar',
                title: 'My Service'
            },

            {
                xtype: 'list',
                store: 'stationsStore',

                styleHtmlContent: true,
                itemTpl: '{stop} {id}'

            }
        ]
    }
});