我有一个连接到模型的商店。我动态地将不同的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属性,但我没有帮助
答案 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字段。
希望这有帮助!