2014-01-20 3 views
0

Привет всем, Я новичок в EXTJS и хочу учесть модели Extjs и их сложность в соответствии с json-ответом. Для примера у меня есть пример JSON ответ на который я хочу, чтобы создать модельКак создать Extjs Модели и ее связь с другими моделями

Это мой app.js файл

Ext.application ({ требует: [ «»] Ext.container.Viewport , имя: 'AM',

appFolder: 'app', 

launch: function() { 
    console.log('I am in app'); 
    var store = Ext.create('AM.store.ExampleStore'); 
    store.load(); 
    console.log('After Loading the records'); 
} 

});

Это пример JSON

[ 
     { 
      "page": "0", 
      "data": [ 
       { 
        "firstname": "puneet", 
        "id": "28170", 
        "lastname": "srivastava", 
        "area": "bangalore", 
        "profession": "Engineer" 
       }, 
       { 
        "firstname": "v Durga", 
        "id": "28171", 
        "lastname": "Mallikrjuna", 
        "area": "bangalore", 
        "profession": "Extjs developer" 
       } 
      ] 
     } 
    ] 

Я создал модель согласно моему пониманию. Модель относится к части данных JSON

Ext.define('AM.model.Example', { 
    extend: 'Ext.data.Model', 
    fields: ["firstname", "id", "lastname", "area", "profession"], 
    belongsTo : 'AM.model.Page' 
}); 
Ext.define('AM.model.Page', { 
    extend: 'Ext.data.Model', 
    fields: ["page", "data"], 
    hasMany:{ model:"AM.model.Example", name: "example", associationKey : "data" } 
}); 
Ext.define('AM.store.ExampleStore', { 
extend: 'Ext.data.Store', 
model : "AM.model.Page",  
proxy: { 
    type: 'ajax', 
    url: 'example.json', 
    reader: { 
     type: 'json', 
     root: 'spaces' 
    } 
}, 
listeners : { 
     'load' : function(store, records, successful) { 
        console.log('Loading the records'); 
        console.log(store.data); 
       } 
    } 
}) 

Данные, которые я получаю после входа в магазин, который содержит только {страница: 0} и часть данных отсутствует ,

Просто хочу знать, где я делаю ошибку или любую вещь, которую я не включаю в магазин или модели.

Благодаря

+0

положить другие коды. Я попытаюсь сделать ExtJS Fiddle. –

+0

Я только что добавил файл app.js. Пройдите, пожалуйста, хотя бы в указанном выше вопросе. –

ответ

0

Модель должна быть:

Ext.define('AM.model.Example', { 
    extend: 'Ext.data.Model', 
    fields: [ 
    {name: 'firstname', type: 'string'}, 
    {name: 'id', type: 'int'}, 
    ... 
}); 

в вашем случае, root должен быть data. Корень означает главный узел вашего объекта Json.

Ext.define('AM.store.ExampleStore', { 
    extend: 'Ext.data.Store', 
    model : "AM.model.Page",  
    proxy: { 
     type: 'ajax', 
     url: 'example.json', 
     reader: { 
      type: 'json', 
      root: 'data' 
     } 
    }, 
    listeners : { 
      'load' : function(store, records, successful) { 
         console.log('Loading the records'); 
         console.log(store.data); 
        } 
     } 
    }) 
+0

Он все еще идет только без изменений. Получение только поля «страница» –

Смежные вопросы