Sencha touch 2 Sencha Touch:商店更新后如何刷新selectfield

Sencha touch 2 Sencha Touch:商店更新后如何刷新selectfield,sencha-touch-2,Sencha Touch 2,我正在尝试获取要动态更新的Sench selectfield 以下是selectfield的代码 items: [ { xtype : 'container', flex: 1, id: 'introtext', html: '<p>Welcome your items above</p>' }, {

我正在尝试获取要动态更新的Sench selectfield

以下是selectfield的代码

items: [
        {
             xtype : 'container',
             flex: 1,
             id: 'introtext',
             html: '<p>Welcome your items above</p>'
        },
        {
             xtype : 'selectfield',
             store : companiesStore2,
             name : 'companies',
             id : 'companiesSelect',
                itemId: 'companySelect',
                valueField : 'companyname',
                displayField : 'companyname',
                style: 'overflow:hidden',
                listeners: {
                    change: function(field,value) {
                        getStats(value)
                    }
                }   
          },.......
项目:[
{
xtype:'容器',
弹性:1,
id:'introtext',
html:“欢迎您的以上项目”

” }, { xtype:'selectfield', 商店:公司商店2, 名称:'公司', id:“公司选择”, itemId:'公司选择', valueField:'公司名称', 显示字段:“公司名称”, 样式:“溢出:隐藏”, 听众:{ 更改:函数(字段、值){ getStats(值) } } },.......
加载页面时,存储区只有一个值。登录后,会向存储区添加更多值。
console.log(CompanyStore2)
确认新值确实已添加到存储区。但是,它们不会显示在我的选择字段中

我尝试了
companiesStore2.refresh()
,但是错误消息说该对象没有方法refresh


使用sencha touch 2.3,您没有发布任何代码来显示商店如何获取其新数据

有两件事可以尝试:

  • 使用组合的
    queryMode:“local”

  • 当存储更改时(添加侦听器,例如,
    companiesStore2.on('datachanged',…)
    ?),请执行以下操作:
    comboBox.bindStore(companiesStore2)


  • 我找到了一个似乎对我有用的答案。 数据更改后,我使用以下命令将存储重新分配给selectfield:

    Ext.getCmp('companiesSelect').setStore(companiesStore2)


    这似乎解决了我遇到的问题。

    谢谢。监听器可以工作,但selectfields没有方法bindStore'datachanged'已被弃用:-(