Карта в Ext.Window.window отображается только частично
Создаю на основе Ext.Panel.panel компонент, содержащий карту, отображаемую через openlayers, этот компонент засовываю в Ext.Window.window.
Карта после загрузки отображается лишь частично: ![]()
Ext.define('MA.view.components.OpenlayersPanel',
{
extend: 'Ext.panel.Panel',
alias: 'widget.openlayerspanel',
multiSelect: true,
initComponent: function()
{
this.callParent(arguments);
this.on('afterrender', this.afterRender, this);
},
afterRender: function()
{
this.map = new OpenLayers.Map(this.body.dom.id);
this.layer = new OpenLayers.Layer.OSM('OSM Map');
this.fromProjection = new OpenLayers.Projection("EPSG:4326");
this.toProjection = new OpenLayers.Projection("EPSG:900913");
this.position = new OpenLayers.LonLat(75.1, 61.15).transform(this.fromProjection, this.toProjection);
this.zoom = 12;
this.layer.setIsBaseLayer(true);
this.map.addLayer(this.layer);
this.map.setCenter(this.position, this.zoom);
}
});
app.js:
Ext.application(
{
requires: ['Ext.container.Viewport'],
name: 'MA',
appFolder: 'app',
controllers:
[
'Map'
],
launch: function()
{
Ext.create('Ext.window.Window',
{
layout:
{
type: 'vbox'
},
items:
[
{
xtype: 'openlayerspanel'
},
{
xtype: 'button',
text: 'Load',
}
]
}).show();
}
});
При ресайзе окна браузера начинает отображаться нормально… Может кто подскажет, с какой строчки у меня руки не из того места растут? |
doLayout не пробовали?
|
пробовал. Еще такой нюанс: если ресайзить окно браузера - карта перерисовывается, если сделать, например, $(window).resize() - так и отображается неполностью. Причем ие9 через один-два раза отрисовывает нормально.
|
layout: {type: 'vbox'}, проставь flex:1 у первого контейнера
{xtype: 'openlayerspanel', flex:1 } |
| Часовой пояс GMT +3, время: 08:28. |