Sencha Touch JSONP商店数据未显示在Panel中

时间:2011-06-15 02:43:39

标签: jsonp sencha-touch datastore

我已将我的应用程序连接起来,因为我认为它应该是,当我将其加载到Chrome时,Javascript控制台不会抛出任何错误。 WebService最终返回了相应的数据,但出于某种原因,我不能为我的生活弄清楚为什么面板是空白的。

这是APP URL
http://rpcm.infinitas.ws/

这是WebService URL
http://rpc.infinitas.ws/Vimeo/Read?_dc=1308083451839&limit=25&callback=stcCallback1001

这是一些相关的代码。

CONTROLLER

rpc.controllers.VimeoController = new Ext.Panel(
    rpc.views.Vimeo.index
);

查看

rpc.views.Vimeo.index = {
    id: 'VideoView',
    title: 'Videos',
    tpl: rpc.templates.VimeoTemplate,
    iconCls: 'tv',
    dockedItems: [{ xtype: 'toolbar', title: 'Videos'}],
    store: 'rpc.stores.VimeoStore'
};

商品

rpc.stores.VimeoStore = new Ext.data.Store({
    id: 'VimeoStore',
    model: 'rpc.models.VimeoModel',
    proxy: {
        type: 'scripttag',
        url: WebService('Vimeo', 'Read'),
        method: 'GET',
        reader: {
            type: 'json',
            root: 'results'
        }
    },
    autoLoad: true
});

MODEL

rpc.models.VimeoModel = Ext.regModel('rpc.models.VimeoModel', {
    fields: [
        {name: 'id', type: 'int'},
        {name: 'title', type: 'string'}
    ]
});

TEMPLATE

rpc.templates.VimeoTemplate = new Ext.XTemplate([
    '<tpl for=".">',
        '<div>',
            '{title}',
        '</div>',
    '</tpl>'
]);

JSON响应

  

stcCallback1001({“results”:[{“id”:25036464,“title”:“投降生命的力量:告别讲道”},{“id”:25036610,“title”:“Child Dedication June 2011“},{”id“:24734142,”title“:”投降生命的力量:连接“},{”id“:24884833,”title“:”2011年6月财务更新“},{”id“: 24587711,“title”:“Papua,Indonesia Sharing 2011年5月”},{“id”:24232427,“title”:“ICHTHUS:Coming King”},{“id”:23868560,“title”:“ICHTHUS:Healer “},{”id“:23486615,”title“:”ICHTHUS:Sanctifier“},{”id“:23211649,”title“:”ICHTHUS:Savior“},{”id“:23867961,”title“: “Elder Announcement re:Brent Trask”},{“id”:22998163,“title”:“Grace的胜利:Risen Lord”},{“id”:23687914,“title”:“格雷斯的胜利:卫冕王” },{“id”:23692076,“title”:“王国现在:因为你是王国”},{“id”:23694183,“title”:“现在的王国:从邪恶中拯救我们”},“成功“:真});

非常感谢任何帮助或指示。

2 个答案:

答案 0 :(得分:2)

您提供的示例响应看起来像JSONP而不是普通的JSON。您可能需要Ext.data.proxy.JsonP

要使用此功能,您可以将商店更改为:

rpc.stores.VimeoStore = new Ext.data.Store({
    id: 'VimeoStore',
    model: 'rpc.models.VimeoModel',
    proxy: {
        type: 'jsonp',
        url: WebService('Vimeo', 'Read'),
        reader: {
            type: 'json',
            root: 'results'
        }
    },
    autoLoad: true
});

祝你好运!

答案 1 :(得分:0)

从视图中删除'' 写道:

  

store:rpc.stores.VimeoStore