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

XML ではなく、JSON ファイルを読んでいます。JSON オブジェクトの 1 つはたまたま文字列化された 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 に答える