2013-12-12 16 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得到加载,即使它们存在于模型和下的关系specifed。

我曾尝试加入协会钥匙匹配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); 

当在商店上调用load时,age字段将被正确加载。

希望这有助于!

+0

用这个代码来动态地将一个字段添加到商店。那么JSON呢? – Jacob