Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.03.2013, 10:10
Интересующийся
Отправить личное сообщение для Ганж Посмотреть профиль Найти все сообщения от Ганж
 
Регистрация: 30.07.2010
Сообщений: 14

Карта в 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();
        }
    });


При ресайзе окна браузера начинает отображаться нормально…

Может кто подскажет, с какой строчки у меня руки не из того места растут?
Ответить с цитированием
  #2 (permalink)  
Старый 10.03.2013, 11:25
С++/C# modest developer
Отправить личное сообщение для nekto_O Посмотреть профиль Найти все сообщения от nekto_O
 
Регистрация: 07.11.2011
Сообщений: 244

doLayout не пробовали?
Ответить с цитированием
  #3 (permalink)  
Старый 10.03.2013, 11:47
Интересующийся
Отправить личное сообщение для Ганж Посмотреть профиль Найти все сообщения от Ганж
 
Регистрация: 30.07.2010
Сообщений: 14

пробовал. Еще такой нюанс: если ресайзить окно браузера - карта перерисовывается, если сделать, например, $(window).resize() - так и отображается неполностью. Причем ие9 через один-два раза отрисовывает нормально.
Ответить с цитированием
  #4 (permalink)  
Старый 14.03.2013, 17:21
VKS VKS вне форума
Профессор
Отправить личное сообщение для VKS Посмотреть профиль Найти все сообщения от VKS
 
Регистрация: 24.09.2010
Сообщений: 178

layout: {type: 'vbox'}, проставь flex:1 у первого контейнера
{xtype: 'openlayerspanel', flex:1 }
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Элементарный подсчет и калькулятор PashaShulga Общие вопросы Javascript 5 14.03.2012 21:42
jquery .dialog Проблема:Всплывающее окно -отображается только 1 раз! denisOgr AJAX и COMET 1 26.07.2010 20:51
Меню отображается только в Firefox Shady-sister Элементы интерфейса 1 02.07.2010 08:20