如果模型不正确,则不会加载Sencha EXT json

时间:2013-12-12 08:52:48

标签: json extjs model store

我有一个连接到模型的商店。我动态地将不同的JSON结构加载到此商店。有些时候JSON结构与模型不同。所有不同的值都不会被加载。

示例:

**Model:**

name
id
description


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

在这种情况下,年龄不会被加载到商店中,因为它未在模型中指定。如何在不更改模型的情况下将此值加载到商店中。这甚至可能吗?

另一件事:人际关系怎么样?在Sencha Architect中,您可以指定模型之间的重新绑定。属于某种关系的属性也无法加载。

示例:

**Model:**

id 
name
relationship: hasManyPets

**JSON:**

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

在这种情况下,即使宠物存在于模型中并且在关系中指定,宠物也不会被加载。

我尝试添加与JSON属性名称匹配的关联键,并将关联名称更改为JSon属性,但我没有帮助

1 个答案:

答案 0 :(得分: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字段。

希望这有帮助!