2013-12-12 1 views
0

У меня есть магазин, который подключен к модели. Я динамически загружаю различные структуры JSON в этот магазин. Иногда структуры JSON отличаются от модели. Все разные значения не загружаются.Sencha EXT json не загружен, если не подходит для модели

Пример:

**Model:** 

name 
id 
description 


**JSON:** 
[{"name":"John", 
"id":"2", 
"description": "Doe", 
"age": "23"}] 

В этом случае возраст woun't загружаются в магазин, так как он не указан в модели. Как я могу добиться загрузки этих значений в хранилище без изменения модели. Возможно ли это?

Другое дело: а как насчет отношений? В Sencha Architect вы можете указать реалии между моделями. Свойства, которые относятся к отношениям, также не загружаются.

Пример:

**Model:** 

id 
name 
relationship: hasManyPets 

**JSON:** 

[{"id":"1", 
"name":"John", 
"pets":[{//somePet},{//somePet}]] 

В этом случае домашних животных woun't загружаются, даже если они присутствуют в модели и при предписанных в технических заданиях отношений.

Я попытался добавить ключи ассоциации соответствия имени атрибута JSON, а также изменение имени ассоциации с атрибутом JSon, но я не помог

ответ

0

Для задачи 1, я думаю, ниже логики может помочь:

после создания магазина [напр. someStore] и модели [например. someModel], добавьте следующие шаги:

var fields = []; 
    someStore.each(function(item) { 
     fields.push(Ext.create('Ext.data.Field', { 
      name: item.get('field') 
     })); 
    }); 
fields.push(Ext.create('Ext.data.Field', { 
      name: 'age' 
     })); // add age field 
    someModel.prototype.fields.removeAll(); 
    someModel.prototype.fields.addAll(fields); 

Когда нагрузка вызывается в магазине, поле возраста будет загружено правильно.

Надеюсь, это поможет!

+0

В этом коде вы динамически добавляете поле в магазин. Как насчет JSON? – Jacob

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