ExtJS-如何将SOAP(WSDL)XML响应对象解析为模型
我正在使用ExtJS,并使用SOAPClient进行了服务调用:ExtJS-如何将SOAP(WSDL)XML响应对象解析为模型,extjs,Extjs,我正在使用ExtJS,并使用SOAPClient进行了服务调用: var url2 = "https://serviceUrlGoesHere/MyService"; var pl = new SOAPClientParameters(); pl.add("arg0", false); SOAPClient.invoke(url2, "getPaymentsMethod", pl, true, getDataCallback); 我的回应方法: function getDataCa
var url2 = "https://serviceUrlGoesHere/MyService";
var pl = new SOAPClientParameters();
pl.add("arg0", false);
SOAPClient.invoke(url2, "getPaymentsMethod", pl, true, getDataCallback);
我的回应方法:
function getDataCallback(response) {
???
};
以下是服务响应:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<dlwmin:getPaymentsMethod xmlns:dlwmin="http://blahblah.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<return>
<contents>
<eftAcctNo>501014635986</eftAcctNo>
<eftAcctRoutNo>122400724</eftAcctRoutNo>
</contents>
<contents>
<eftAcctNo></eftAcctNo>
<eftAcctRoutNo></eftAcctRoutNo>
</contents>
<contents>
<eftAcctNo></eftAcctNo>
<eftAcctRoutNo></eftAcctRoutNo>
</contents>
<status>0</status>
</return>
</dlwmin:getPaymentsMethod>
</soapenv:Body>
</soapenv:Envelope>
501014635986
122400724
0
我的问题是。。。如何将这些数据添加到模型并填充数据网格?下面是一个如何加载存储的示例,在此之后填充数据网格应该非常简单,因为您可以在站点上完成以下示例之一:
Ext.define("YourModel", {
extend: "Ext.data.Model",
fields: [
{name:"eftAcctNo", type:"int"},
{name:"eftAcctRoutNo", type:"int"}
]
});
var store = Ext.create('Ext.data.Store', {
autoLoad: false,
model: 'YourModel',
proxy: {
type: 'memory',
reader: {
type: 'xml',
root: 'return'
}
}
});
function getDataCallback(response) {
store.loadData(response.reponseText);// or just response if that is already text in your case
};
以下是对我有效的答案:
var url2 = "https://serviceUrlGoesHere/MyService";
var pl = new SOAPClientParameters();
pl.add("arg0", false);
SOAPClient.invoke(url2, "getPaymentsMethod", pl, true, this.getDataCallback);
getDataCallback: function (req, r) {
var store = Ext.getStore('STORENAMEHERE');
store.loadRawData(r);
store.sync();
}
通过执行loadRawData,它将数据加载到存储中,我的网格能够成功加载数据。将XML读取器连接到您的存储中,然后加载数据。是否要根据返回数据中的内容动态创建存储和模型?我可以这样尝试,但我也想知道如何动态创建。谢谢你的帮助。这是Extjs推荐的方法。基于返回数据的动态创建需要很多技巧才能完全准确地完成。好的,谢谢。我是一名Flex开发人员,所以我正在尝试解决这个问题。我得到以下错误:uncaughttypeerror:Object[Object global]没有方法'loadData'PhoneCalls.js?\u dc=1373675313519:23 getDataCallback