如何将一些价值放入组合框下拉列表而不将其添加到商店?

时间:2012-04-27 13:24:22

标签: extjs4

我的bbox配置:

{
  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 个答案:

答案 0 :(得分:0)

您无法使用常规方法将新商品添加到商店。由于您对商店的配置sync,它将autoLoad: true, autoSync: true与数据库。

您仍然可以通过直接处理Dropbox的元素来实现您的目标,即使使用Dropbox的DOM(尝试使用Component.getEl()。dom)。然而,它只是解决方法,不建议使用,因为存储可能在加载/同步时触发错误和/或当任何操作导致存储加载后,当Dropbox重新呈现时,您将获得重复的数据。