Нашел как сделать. Вот код:
Ext.define('Layout.Svg', {
extend: 'Ext.layout.container.Container',
alias: 'layout.p',
type: 'p',
renderTpl: ['{%this.renderContent(out,values)%}'],
});
Ext.define("Container", {
extend: "Ext.container.Container",
layout: 'p',
autoEl: {
tag: "p",
style: "color: red;"
}
});
Ext.create("Container", {
renderTo: Ext.getBody(),
html: "HTML",
items: [{
xtype: "component",
html: "Пример вложения 1 в контейнер"
}, {
xtype: "component",
html: "Пример вложения 2 в контейнер"
}, {
xtype: "component",
html: "Пример вложения 3 в контейнер"
}]
});
Он выводит следующий HTML:
<p class="x-container x-container-default x-border-box" style="color: red;" id="ext-comp-1009">
<div class="x-component x-component-default" id="component-1010">Пример вложения 1 в контейнер</div>
<div class="x-component x-component-default" id="component-1011">Пример вложения 2 в контейнер</div>
<div class="x-component x-component-default" id="component-1012">Пример вложения 3 в контейнер</div>
HTML
</p>
Версия Ext JS = 5.1.0
Если я правильно понял, наследоваться нужно не от класса Ext.layout.container.Container, а от класса Ext.layout.Layout. Но в этом случае придется написать много кода на основе кода класса Ext.layout.container.Container. Это сделать нужно, так как в Ext.layout.container.Container много лишнего (например расчет размера контейнера, который в моей конкретной задаче не нужен).