Extjs 4 - 从没有模型的商店创建新的空记录

时间:2013-11-08 11:59:31

标签: json extjs extjs4 store

我试图在不创建模型的情况下创建新的空记录。

无意中我试图运行这个:

new new storeComp.model()

它实际上有效!

任何人都知道这方面的任何解决方案或它是如何工作的答案?

谢谢! 沙莱夫

2 个答案:

答案 0 :(得分:7)

未配置模型的商店将隐式创建匿名商店。这在implicitModel私有属性的文档中有解释(商店需要知道,因为如果它使用隐式模型,它必须在它本身被销毁时销毁它。)

最后,这意味着您可以安全地期望使用模型支持任何商店。

答案 1 :(得分:1)

我遇到了关联商店的同样问题。为此,我使用下面的JSON格式来加载项目存储。因此,在关联(项目资源)存储中创建自动空记录。

商品

Ext.define('App.store.Projects', {
   extend : 'Ext.data.Store',
   model : 'App.model.Project'
});

<强>型号:

Ext.define("App.model.Project", {
    extend: 'Ext.data.Model',
    idProperty : 'id',
    uses : ['App.model.ProjectResource'],
    fields: [
        { type: 'auto', name: 'id'},
        { type: 'number', name: 'customerid'},
        { type: 'string', name: 'projectcode'}
    ],
    associations: [
    {type: 'hasMany', model: 'App.model.ProjectResource', name: 'Resources', storeConfig: { remoteFilter: true }}
    ]
});

Ext.define("App.model.ProjectResource", {
    extend: 'Ext.data.Model',
    idProperty : 'id',
    fields: [
        { type: 'number', name: 'id'},
        { type: 'string', name: 'name'},
        { type: 'number', name: 'projectid'},
        { type: 'auto', name: 'resourceid'}
    ],

    associations : [
    {type : 'belongsTo', model: 'App.model.Project'}
    ]
});

JSON格式:

 [
        {
            "id": "105",
            "customerid": "105",
            "projectcode": "ALN01",
            "Resources": {}
        }
]

使用空对象(如"Resources": {})加载商店将创建空模型。