ExtJS:如何将商店的记录插入另一个商店?

时间:2012-03-23 11:21:50

标签: extjs extjs4

我有两种数据模型:Writer.AttributValeurWriter.Produit

Writer.ProduitWriter.AttributValeur有一个二人关系。

我想显示(以及创建/编辑/删除)Writer.Produit列表。我希望能够向当前Writer.AttributValeur添加Writer.Produit

所以这就是我所做的:两家商店:

  • 第一个链接到网格(和表单)以显示(以及创建/编辑/删除)Writer.Produit列表。
  • 第二个用于显示Writer.AttributValeur
  • 的列表(仅列表)

在第一个网格中,有一个“添加AttributValeur”按钮。当用户点击它时,我会显示一个Windows,其中有一个与第二个商店链接的网格。如果用户选择了一条记录,然后单击“确定”,我可以使用以下代码获取Writer.AttributValeur记录:

var currentAttribut = gridAttributs.getView()
    .getSelectionModel()
    .getSelection()[0];

我想将此记录currentAttribut添加到Writer.Produit商店。

知道怎么做吗?以下是我的数据模型的ExtJS声明,以及我的商店的创建。

Ext.define('Writer.AttributValeur', {
    extend: 'Ext.data.Model',
    fields: [{
            name: 'id',
            type: 'int',
            useNull: true
        },  
        'description',
        'val'
    ],  
    belongsTo: 'Writer.Produit'
});

Ext.define('Writer.Produit', {
    extend: 'Ext.data.Model',
    fields: [{
            name: 'id',
            type: 'int',
            useNull: true
        },  
        'titre',
        'description'
    ],
    hasMany: {
        model: 'Writer.AttributValeur',
        name: 'attributs'
    }   
});

var store = Ext.create('Ext.data.Store', {
    model: 'Writer.Produit',
    autoLoad: true,
    autoSync: true,
    proxy: {
        type: 'ajax',
        api: {
            read: 'json/liste_view/',
            create:  'json/item/?mode=create',
            update:  'json/item/?mode=update',
            destroy: 'json/item/?mode=destroy'
        },
        reader: {
            type: 'json',
            successProperty: 'success',
            root: 'data',
            messageProperty: 'message'
        },
        writer: {
            type: 'json',
            writeAllFields: true,
            root: 'data'
        }
    }
});


var storeAttributs = Ext.create('Ext.data.Store', {
    model: 'Writer.AttributValeur',
    autoLoad: true,
    autoSync: true,
    proxy: {
        type: 'ajax',
        api: {
            read: 'json/attributs/'
        },
        reader: {
            type: 'json',
            successProperty: 'success',
            root: 'data',
            messageProperty: 'message'
        }
    }
});

1 个答案:

答案 0 :(得分:1)

似乎有什么问题?每个商店都有方法add。使用它。