ExtJS 6 использует TPL в современной сборщике кромок - PullRequest
0 голосов
/ 26 февраля 2019

В течение нескольких дней я пытался заполнить селектор выбора полей в поле выбора следующим шаблоном XTemplate: <div>BONJOUR <br> {sNotificationTypeTitle}</div>

После многих поисков в базе данных кода (picker.js, slot.js...), я нашел, как применить TPL в слотах выбора, заменив функцию createEdgePicker следующим образом:

createEdgePicker: function() {
    var me = this;

    var pickerSlot = {
        align: me.getPickerSlotAlign(),
        name: me.getValueField(),
        valueField: me.getValueField(),
        value: me.getValue(),
        store: me._pickerStore || me.getStore()
    }

    if (Ext.isEmpty(me.pickerTpl)) {
        pickerSlot.displayField = me.getDisplayField();
    }
    else {
        /**
         * ext/modern/modern/src/picker/Slot.js ligne 97
         * @cfg {String} itemTpl The template to be used in this slot.
         * If you set this, {@link #displayField} will be ignored.
         */
        pickerSlot.itemTpl = me.pickerTpl;
    }

    return Ext.merge({
        ownerCmp: me,
        slots: [pickerSlot],
        listeners: {
            change: me.onPickerChange,
            scope: me
        },
        setStore: function(store) {
            this.child('pickerslot').setStore(store);
        },
        deselectAll: function() {
            this.child('pickerslot').deselectAll();
        }
    }, me.getEdgePicker());
},

НО это работает только для TPL в одной строке, когда я попробовал свой последний TPL,с
не работает:

с <div>BONJOUR {sNotificationTypeTitle}</div>

enter image description here

с <div>BONJOUR <br> {sNotificationTypeTitle}</div>

enter image description here

Fiddle: https://fiddle.sencha.com/#view/editor&fiddle/2q4j

Поэтому, если кто-либо из вас решил эту проблему, используя то же или другое решение, поделитесь им;)

Я использую ExtJS 6.6 с современным инструментарием.

...