0

我最近才开始使用 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"}
4

1 回答 1

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);
    }
}
于 2013-06-21T06:40:05.530 回答