Прокси Ext.data.Store не анализирует вложенный JSON и его модели

Я просто пытаюсь проанализировать вложенный JSON в созданной мной модели. Я создал три модели (Detalhe, Propriedade и Assinatura) для каждого узла JSON. Прокси магазина не анализирует данные для модели Деталье.

Я также попытался поместить свойство "mapping" в атрибут hasMany с тем же именем узла. Это не сработало. Ext.Template также не может читать данные магазина и заполнять Viewer.

Какие-либо предложения?

Вот мой JSON:

{
   "details": {
      "customProperties": [
         {
            "chave": "Data de Criação",
            "valor": "30/10/2013"
         },
         {
            "chave": "Nome",
            "valor": "Blah Stuff"
         }
      ],
      "signatures": [
         {
            "nome": "Data de Criação",
            "data": "30/10/2013"
         },
         {
            "nome": "Nome do Cliente",
            "data": "John Doe"
         }
      ]
   },
   "success": true
}

И код разбора:

Ext.define('Propriedade', {
            extend: 'Ext.data.Model',
            fields: ['chave', 'valor'],
            belongsTo: 'Detalhe'
        });

        Ext.define('Assinatura', {
            extend: 'Ext.data.Model',
            fields: ['nome', 'data'],
            belongsTo: 'Detalhe'
        });

        Ext.define('Detalhe', {
            extend: 'Ext.data.Model',
            hasMany: [
                {model: 'Propriedade', name: 'customProperties'},
                {model: 'Assinatura', name: 'signatures'}
            ]
        });

        var store = Ext.create('Ext.data.Store', {
            id: 'customPropertiesStore',
            model: 'Detalhe',
            autoLoad: false,
            proxy: {
                type: 'ajax',
                url: 'info.json',
                reader: {
                    type: 'json',
                    root: 'details',
                    successProperty: 'success'
                }
            }
        });

        var docId = "some id"; 
        var folders = "some folder";

        store.load({
            params: {docId: docId, folders: folders}
        });

        var tpl = new Ext.XTemplate(
            '<tpl for="customProperties">',
                '<div class="customPropertyItem">',
                    '<span><label>{chave}</label>: {valor}</span>',
                '</div>',
            '</tpl>',
            '<tpl for="signatures">',
                '<div class="signatureItem">',
                    '<span><label>{nome}</label>: {data}</span>',
                '</div>',
            '</tpl>'
            );

        var viewer = Ext.create('Ext.view.View', {
            store: Ext.data.StoreManager.lookup('customPropertiesStore'),
            tpl: tpl,
            itemSelector: 'customPropertyItem',
            emptyText: 'Nothing found.'
        });

0 ответов

Другие вопросы по тегам