0

私は現在senchatouchを学んでいて、テストとして小さなWebサービスを作成し、結果のアイテムをリストに表示したいと思っています。

しかし、私はそれを動作させることができません...

Ext.define('GS.view.ListTest', {
    extend: 'Ext.navigation.View',

    requires:[
        'Ext.dataview.List',
        'Ext.data.proxy.JsonP',
        'Ext.data.Store'
    ],
    xtype:'listpanel',
    config: {
        title: 'Fifa List',
        iconCls: 'star',

        items: {
            xtype: 'list',
            itemTpl: '{Player1}',

            store: {
                autoLoad: true,
                fields: ['MatchID','Player1', 'ScorePlayer1' ,'ScorePlayer2','Player2'],

                proxy: {
                    type: 'jsonp',
                    url: 'http://fifa.verhulstrobin.be/webservices/getMatches.php',
                    reader: {
                        type:'json',
                        rootProperty: 'matches'
                    }
                }
            }

        }

    }
});

チェックすると、jsonが有効です...コンソールに表示されるのはUncaught SyntaxError:Unexpected token:

4

3 に答える 3

0

Web サービスの応答を見ると、JSONP が必要とするような関数呼び出しで JSON の応答がラップされていないことがわかります。次のようなアイテムを返品する必要があります。

Ext.data.JsonP.callback1({});

関数の引数は、空のオブジェクトではなく実際の JSON データでなければならず、関数の名前「Ext.data.JsonP.callback1」は、Ext ストアによって「callback」という名前のパラメーターとして Web サービスに渡されます。

ただし、プロキシの callbackKey を使用してそのパラメータの名前をカスタマイズできます。

var store = Ext.create('Ext.data.Store', {
    model: 'User',
    proxy: {
        type: 'jsonp',
        url : 'http://domainB.com/users',
        callbackKey: 'theCallbackFunction'  // <--
    }
});

JSONP の詳細と Ext Js Store に実装する方法については、http://en.wikipedia.org/wiki/JSONP およびhttp://docs.sencha.com/touch/2-0/を参照してください。 #!/api/Ext.data.proxy.JsonP

于 2012-07-11T22:27:25.623 に答える
0

これを試して

items: {
    xtype: 'list',
    itemTpl: '{match.Player1}',

    store:new  Ext.create('Ext.data.Store', {
        autoLoad: true,
        fields: ['match'],

        proxy: {
            type: 'jsonp',
            url: 'http://fifa.verhulstrobin.be/webservices/getMatches.php',
            reader: {
                type:'json',
                rootProperty: 'matches'
            }
        })
    }
}
于 2012-07-11T12:21:53.117 に答える