Показать сообщение отдельно
  #3 (permalink)  
Старый 03.04.2015, 22:07
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Нашел как сделать. Вот код:

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 много лишнего (например расчет размера контейнера, который в моей конкретной задаче не нужен).

Последний раз редактировалось khusamov, 03.04.2015 в 22:10.
Ответить с цитированием