我刚刚开始使用Sencha Touch 2.我在阅读XML数据时遇到了问题。 错误:
Uncaught Error: [ERROR][Ext.data.Store#setModel] Model with name "MyApp2.model.TabBarModel" does not exist.
我错过了什么?
模特:
Ext.define("MyApp2.model.TapBarModel", {
extend: "Ext.data.Model",
config: {
type:'tree',
fields: [
{name: 'id', type: 'auto',mapping:'module.id'}
]
}
});
商店:
Ext.define("MyApp2.store.TabBarStore", {
extend: "Ext.data.Store",
requires: ["Ext.data.proxy.JsonP","Ext.data.reader.Xml"],
config: {
model: "MyApp2.model.TabBarModel",
autoLoad: true,
id: 'TabBarStr',
proxy: {
type: 'jsonp',
url: 'http://mysite.com/api/applications/894/config?format=jsonp&appviewer=1&lang=fr&access_token=' + token,
reader: {
type: 'xml',
root: 'application',
record:'module'
}
}
}
});
我的档案:
{"status":"ok","config":"<?xml version=\"1.0\"?>\n
<application id=\"4\" name=\"name\" >
<modules>
<module id=\"32\" >
<\/module>
.....
<\/modules>
<\/application>\n"}
答案 0 :(得分:0)
您正在阅读JSON文件,而不是XML。其中一个JSON对象碰巧是一些字符串化的XML,但它并没有改变你正在阅读JSON的事实。
您可以更改代理以读取json,并正确处理结果。 或者(我强烈建议)将远程Web服务更改为返回JSON或XML,而不是JSON中的XML或其他内容。
尝试这样的事情:
Ext.data.JsonP.request({
url: yourUrl,
params: {
...
},
success: function(result) {
var xml = result.config;
//Parse xml here
Ext.getStore('TabBarStore').add(yourNewXmlStuffInAnArray);
}
}