2012-03-23 2 views
1

У меня есть две модели данных: Writer.AttributValeur и Writer.Produit.ExtJS: как вставить запись в магазин в другой магазин?

Writer.Produit имеет отношения one2man с Writer.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

В чем проблема? Каждый магазин имеет способ add. Используй это.

+0

ОК Я отмечаю ваш вопрос как «хорошо», потому что он отвечает на мой вопрос. Мой вопрос не был хорошо сформирован, я спрошу еще один;) –

Смежные вопросы