2012-04-27 2 views
0

мой BBOX конфигурации:как добавить значение в выпадающий список combobox без добавления его в магазин?

{ 
    xtype: 'combobox', 
    editable: false, 
    store: 'my.store', 
    displayField: 'name', 
    valueField: 'id', 
    name: 'rule', 
    fieldLabel: 'Rule', 
    allowBlank: true 
} 

моя модель:

Ext.define('rule', { 
    extend: 'Ext.data.Model', 
    idProperty: 'id', 
    fields: [ 
    {name: 'id', type: 'int'}, 
    name, 
    {name: 'json', type: 'string'}, 
    {name: 'json2', type: 'string'} 
    ] 
}); 

мой магазин:

Ext.define('Et.store.odinkod.Rules', { 
extend: 'Ext.data.Store', 
pageSize: 50, 

proxy: { 
    headers: {'hash': 'hashnumber1'}, 
    type: 'rest', 
    url: 'api/rule', 
    reader: {type: 'json', root: 'data'}, 
    writer: {type: 'json', root: 'data'} 
}, 
/* 
listeners: { 
    load: function() { 

     if(count == 0){ 

      count++; 
       var instance = Ext.create('Et.model.rule', { 
       id: '', 
       accountHash: '', 
       name: 'Always', 
       json: '', 
       uiJson: '', 
       comment: '' 
      }); 
     this.add(instance); 
    } 

    } 
    }, 
*/ 
autoLoad: true, 
autoSync: true, 
model: 'rule' 
}); 

так я хочу видеть дополнительное поле "имя" в dpopbox без новой записи

Я могу решить свою проблему, если я делаю «добавить» метод в магазине. но это плохой способ для меня

+1

Почему это плохо? Не могли бы вы дать значение «Всегда» id чего-то типа «-1», а затем ответить на этот выбор в обработчике для комбо? – dougajmcdonald

ответ

0

Вы не можете использовать обычный способ добавления нового товара в магазин. Он будет sync с БД из-за ваших конфигураций autoLoad: true, autoSync: true в магазин.

Вы по-прежнему можете достичь своей цели, непосредственно обработав элемент Dropbox, даже с DOM из Dropbox (попробуйте Component.getEl(). Dom). Однако это просто обход и не рекомендуется, так как хранилище может создавать ошибки при загрузке/синхронизации и/или вы будете получать дубликаты данных, когда удаляющий пакет повторно отобразит его после того, как какие-либо действия приведут к загрузке магазина.

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