名称模型不存在问题sencha touch 2

时间:2013-06-20 18:15:31

标签: xml model sencha-touch-2

我刚刚开始使用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"}

1 个答案:

答案 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);
    }
}