多选搜索整个字符串

Multiselect search whole string

我有一个多选,搜索绑定到商店(属性 string_value)。搜索仅搜索以 "string to search" 开头而不包含 "string to search" 的字符串(类似于搜索 '%string%' 而不是 'string%')。有没有办法通过扩展 'multiselector-search' 来做到这一点?

下面是我绑定到表单的多选器控件:

var ms = Ext.widget('form', {
    xtype: 'multi-selector',
    width: 400,
    height: 300,
    requires: [
    'Ext.view.MultiSelector'
    ],
    layout: 'fit',

    renderTo: Ext.getBody(),
    items: [{
        bbar: [{
            xtype: 'button',
            itemId: 'button',
            html: 'Toolbar here',

            text: 'Submit request to API',

            // get submitted array
            handler: function() {
                if (cardioCatalogQT.config.mode === 'test') {
                    console.log('In submitted values handler: ');
                }

                var submitted = Ext.getCmp('test');

                var dx = [];
                Ext.Array.each(submitted.store.data.items, function (item) {
                    dx.push(item.data.string_value);
                }); // each()

                Ext.Msg.alert('Submitted Values',
                   'The following diagnoses will be sent to the server:  <br      
                />' + dx);

                if (cardioCatalogQT.config.mode === 'test') {
                    console.log(dx);
                }
            }
        }],
        xtype: 'multiselector',
        title: 'Selected Dx',

        id: 'test',
        name:'test',
        fieldName: 'string_value',

        viewConfig: {
            deferEmptyText: false,
            emptyText: 'No Dx selected'
        },
        // TODO: fix ability to remove selected items when box is unchecked
        search: {
            field: 'string_value',
           store: 'Diagnoses'

        }
    }]
}).center();

我能找到的最接近这个问题的是 http://www.sencha.com/forum/showthread.php?240887。我试着让它与多选搜索一起工作,但没有成功。

Mu​​ltiSelector 使用 Ext.util.Filter 根据键入的文本缩小结果范围。您需要启用 anyMatch 属性 才能匹配任何地方。

为此,您必须在多选器的搜索对象中包含一个新的 "search" 函数,该函数的 anyMatch=true。

请参阅我的 fiddle、https://fiddle.sencha.com/#fiddle/jf5,了解如何执行此操作的示例。