EXTjs操作显示在组合框中的数据

EXTjs manipulate data displayed in a combobox

本文关键字:数据 组合 操作 显示 EXTjs      更新时间:2023-09-26

大家好,我进入了一个以前在EXTjs中完成的新项目,我是新手,我正试图跟踪任何事情。

我今天的问题是:我有一个具有已定义tpl的面板,其中有几个函数可以操作tpl中的类(如果某个变量为真或假,则显示一个图标而不是另一个图标)。现在我必须将相同的逻辑转换为组合框,我遇到了一些问题:

如果我使用tpl,我获得相同的视觉结果,但我不能选择任何项目:

tpl: [
    '<tpl for=".">',
        '<div class="x-publisher {[this.renderColor(values.visible)]}">',
            '<div class="x-publisher-text">{name}</div>',
            '<div class="x-publisher-close fa {[this.renderIcon(values.visible)]}"></div>',
        '</div>',
    '</tpl>',
    '<div class="x-clear"></div>',
    {
        disableFormats: true,
        renderColor: function(visible){
            return visible ? 'visible' : '';
        },
        renderIcon: function(visible){
            return visible ? 'fa-eye-slash' : 'fa-eye'
        }
    }
],
itemSelector: 'div.x-publisher',
listeners: {
     select: 'somefunctioncalled'
},

我明白,对于组合框,我必须使用listconfig和itemtpl之类的东西,这样:

listConfig: {
        itemTpl: [
            '<div class="x-publisher {visible}"><div class="x-publisher-text">{name}</div><div class="x-publisher-close fa fa-eye"></div></div>'
                ]
                }

但是这样做,我知道我不能在itemtpl中定义任何函数…因此,我的想法是在将{visible}变量传递给itemtpl之前对其进行操作。

商店是这样的:

store: { fields: [{ name:'name' }, { name: 'id', persist: false }, { name: 'regionalId' }, { name:'visible', type: 'boolean'}],
                                autoLoad: true,...

现在,是否有一个(简单)的方法来转换,"可见"变量到字符串"可见",如果它是真的或其他东西,如果它是假的?还是……是否有一种方法来模拟第一种行为,我的意思是添加某种自定义函数(我知道他们被称为成员函数),当我使用itemTpl?也有改变图标的问题,但我可以在这个阶段忽略它。

你能帮我吗?

我在itemtpl中使用了一些逻辑,似乎如预期的那样工作:

itemTpl: [
            '<div class="x-publisher',
            '<tpl if="visible == true"> visible</tpl>',
            '"><div class="x-publisher-text">{name}</div><div class="x-publisher-close fa fa-eye"></div></div>'
        ]