1

XML形式のSOAPリクエストをEXTJS4に返すPerlスクリプトがあります。XMLをロードして表示するコードは次のとおりです(これはEXTJSでの私の最初の試みです):

Ext.onReady(function() {  
Ext.Loader.setConfig({enabled:true});

    Ext.define('accounts', {     
        extend: 'Ext.data.Model',
        fields: [
            {name: 'name', type: 'string'},
            {name: 'origin', type: 'string'}
            ]
    }); 

    var myStore = Ext.create('Ext.data.Store', {
        model: 'accounts',
        proxy: {
            type: 'ajax',
            url: 'cgi-bin/runPerl.pl',
            reader: {
                type: 'xml',
                root: 'soap:Body'
            }
        },
        autoLoad: true
    });

     myStore.on('load', function(store, records, options) {

        var tpl = new Ext.XTemplate(
            '<tpl for="Accounts">',
            '<h1>{values.data.name}</h1>',
            '<h1>{values.data.origin}</h1>',
            '</tpl>'
        );

        //tpl.append(Ext.get("output"), store.getRange());

    });

XMLは次のとおりです。

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getAccountsResponse xmlns:ns2="http://services.nms.nimsoft.com/">
<Accounts>
<accountId>1</accountId>
<address></address>
<city></city>
<country></country>
<creationDate>2012-04-11T00:00:00+01:00</creationDate>
<description></description>
<fax></fax>
<name>Network</name>
<origin>Support_4</origin>
<phone></phone>
<postalCode></postalCode>
<state></state>
<webSite></webSite>
</Accounts>
</ns2:getAccountsResponse>
</soap:Body>
</soap:Envelope>

Firebugは以下を表示します:

Ext.DomQuery.pseudos[name] is not a function
[Break On This Error] 

Ext.DomQuery.pseudos [name](cs、value);を返します。

私はこれをtplセクションに絞り込みましたが、私の一生の間、私が得ているエラーを理解することはできません。

誰かアドバイスをお願いできますか?ありがとう!

4

1 に答える 1

1

リーダーの定義を次のように変更してみてください。

reader: {
    type: 'xml',
    // root: 'soap:Body',
    record: 'Accounts'
}
于 2012-05-25T12:07:05.643 に答える