В течение нескольких дней я пытался заполнить селектор выбора полей в поле выбора следующим шаблоном 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>
с <div>BONJOUR <br> {sNotificationTypeTitle}</div>
Поэтому, если кто-либо из вас решил эту проблему, используя то же или другое решение, поделитесь им;)
Я использую ExtJS 6.6 с современным инструментарием.