Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Действия при загрузке страницы (https://javascript.ru/forum/extjs/40271-dejjstviya-pri-zagruzke-stranicy.html)

adamenko.artem 30.07.2013 09:45

Действия при загрузке страницы
 
Привет.Подскажите как сделать событие при загрузке страницы.Например в обычном случае(без ExtJS) <body onload="function">
как это сделать в extjs?
Спасибо

danik.js 30.07.2013 10:25

Ext.onReady(function(){
    // страница загружена.
});

По крайней мере в 3й версии так.
К слову атрибут onload тега <body> устанавливает обработчик события window@onload, а Ext.onReady навешивает document@DOMContentLoaded (оно наступает раньше)

adamenko.artem 30.07.2013 10:28

а где вызывать этот метод?
я вот просто пытаюсь в контроллере, в методе init.и оттуда вроде срабатывает вызов функции,она яндекс карты загружает.по консоли видно что карты грузятся, но не отображаются,как мне отрендерить?

novikov 30.07.2013 12:21

В объявлении класса приложения должны быть перечислены все контроллеры. Сначала приложение выполняет init() у всех контроллеров, а затем переходит к построению представлений. [Попутно навешивая обработчики событий, заданные вами в методах init() контроллеров.]

В версии ExtJs 4.2 в методе init() контроллера должно быть что-то наподобие:

this.listen({
        component: {
            '#my_map_panel_id': {
                  afterrender: function(myMapPanel) {
                         // рисуем карты
                  }
            }
        }
   });



Мне с яндекс-картами не приходилось сталкиваться. Возможно, действовать нужно иначе.

Пример с картами Гугл видели?

http://docs.sencha.com/extjs/4.2.1/#...ndow/gmap.html

Если не трудно, покажите код.

adamenko.artem 30.07.2013 12:33

я пытаюсь сделать так
Ext.define('CWM.view.Main', {
    alias: 'widget.main', // alias (xtype)
    extend: 'Ext.panel.Panel',
    title: 'Панель управления МБУ ЦДС "Веб карты"',
    xtype: 'panel',
    html: '<div id="map-canvas"></div>',
    listeneres: {
        afterrender: function () {
            ymaps.ready(init);
            function init() {
                myMap = new ymaps.Map("map-canvas", {
                    center: [51.7038, 39.1833],
                    zoom: 12,
                    type: 'yandex#hybrid'
                });
                myMap.controls
                // Кнопка изменения масштаба.
                .add('zoomControl', { left: 5, top: 5 })
                // Список типов карты
                .add('typeSelector')
                // Стандартный набор кнопок
                .add('mapTools', { left: 35, top: 5 });
            }
        }
    },

novikov 30.07.2013 13:59

Это определение представления (view), а не контроллера. Вы определяете обработчики в представлении. xtype: panel можно не писать. extend: 'Ext.panel.Panel' значит то же самое. Впрочем не важно. Проблема не в этом. У вас опечатка: listeneres. Должно быть: listeners. Надеюсь, что причина в этом.


Часовой пояс GMT +3, время: 03:16.