如何将外部JSON中的数据加载到轮播中

时间:2011-02-09 13:58:35

标签: json jsonp sencha-touch carousel

人。我已经开始玩Sencha Touch了,我第一次尝试创建一个简单的应用程序来读取JSON文件,然后将内容放入轮播单元格(有6个)。

以下是目前的代码:

Ext.setup({ 
icon: 'icon.png',
glossOnIcon: false,
phoneStartupScreen: 'phone_startup.png', 
onReady: function() { 

  var arena_zapad = new Ext.Component({
    title: 'Arena Zapad',
    scroll: 'vertical',
    tpl: [
      '<tpl for=".">',
        '<div class="movie">',
          '<div class="title"><h2>{title}</h2></div>',
          '<div class="days">{days}</div>',
        '</div>',
      '</tpl>'        
      ]      
  });

  var refresh = function() {
    Ext.util.JSONP.request({
      url: 'arena_zapad.json',
      callbackKey: 'callback',
      callback: function(data) {
        arena_zapad.update(data)          
      }
    })  
  }

    new Ext.TabPanel({
        fullscreen: true,
        tabBar: {
            dock: 'bottom',
            layout: {pack: 'center'}
        },
        animation: 'slide',
        items: [{
            title: 'Movie Theaters',
            iconCls: 'monitor2',
            xtype: 'carousel',
            items: [
              { html: "Arena Mladost",
                cls: 'card card2'
                // I want the json data here instead of html text
              },{
                html: 'Arena West',
                cls: 'card card2'
            },{
                html: 'Арена The Mall',
                cls: 'card card3'
            },{
                html: 'Cineplex',
                cls: 'card card3'
            },{
                html: 'Cinema City',
                cls: 'card card3'
            },{
                html: 'M-TEL IMAX',
                cls: 'card card3'
            }]
        }, {
            title: 'Movies',
            html: 'Movies',
            iconCls: 'video_black2',
            cls: 'card card1'
        }, {
            title: 'Premier',
            html: 'Premier',
            iconCls: 'photo3',
            cls: 'card card3'
        }, {
            title: 'Favourites',
            html: 'Favourites',
            iconCls: 'favorites',
            cls: 'card card1'
        }, {
            title: 'About',
            html: 'About',
            iconCls: 'info2',
            cls: 'card card5'
        }]
    });
}

});

这是json文件:

{
"movies": [
    {
        "days": "Digital: 12:15, 14:15, 16:15, 18:15, 20:15, 22:15 35MM: 11:15, 13:15, 15:15, 17:15, 19:15, 21:15, 23:15",
        "title": "TILT"
    },
    {
        "days": "9 февруари (сряда), 13:10, 15:30, 17:50, 19:00, 20:10, 21:20, 22:30",
        "title": "Бурлеска"
    },
    {
        "days": "9 февруари (сряда), 12:00, 16:15",
        "title": "Запознай се с малките"
    }
]

}

所以基本上我想要加载该文件,解析它并将其放在第一个轮播“单元格”中(以后再填充其他“单元格”)。我看过文档,但我无法弄清楚如何做到这一点。任何帮助将不胜感激。

提前致谢。

2 个答案:

答案 0 :(得分:0)

如果您在同一个域中,则无需使用JSONP加载。只需使用Ext.Ajax.request。有一个从xml加载轮播内容的例子,想法是一样的。

答案 1 :(得分:0)

你看过这个例子吗? http://www.netmagazine.com/tutorials/build-ipad-app-sencha-touch

构建应用程序的非常深入的教程从另一个来源提取数据(我认为它是Youtube,不记得了)并且填充了大约48个具有可点击覆盖的缩略图 - 非常酷。

的Si