ExtJS -- 动态更改下拉列表/选择器



我有一个 ExtJS 6 应用程序。我正在使用带有自定义选择器的 TagField 组件,该选择器是一个带有工具栏和一些按钮的网格。在某些情况下,我想使用不同的选取器。要使用的选取器将由商店记录计数确定。

因此,如果记录计数> 50,我想显示选取器 A,否则显示选取器 B。

我面临的问题是选择器是在其存储之前创建的(这是有道理的),一旦创建了选择器,就无法更改 AFAIK。当商店加载并检查记录计数时,更改选择器已经太晚了。

那么有什么方法可以摧毁选择器并设置一个新的吗?我需要类似"setPicker()"的方法。

谢谢

更实用的解决方案是创建两个TagField组件。一个使用拾取器 A,另一个使用拾取器 B。然后,您只需为商店添加一个侦听器load事件,并根据您的条件显示/隐藏相应的组件。

不是那么整洁,但实施起来简单快捷。

我只会使用一个选择器并更改它的存储以保持简单。选取器 (组合框) 呈现后,可以根据选取器 A 的存储的记录计数确定要用于它的存储

        {
        xtype: 'combobox',
        fieldLabel: 'Label',
        listeners: {
            afterrender: {
                fn: 'onComboboxAfterRender',
                scope: 'controller'
            }
        }
    }

在控制器中:

    onComboboxAfterRender: function(component, eOpts) {
    var store1 = this.getViewModel().getStore('store1'),
        store2 = this.getViewModel().getStore('store2');
    if(store1.count > 50){
        component.bindStore(store1);
    }else{
        component.bindStore(store2);
    }
}

最新更新