0

我有一个控件,其中我扩展了一个“Ext.Map”。一切正常,加载正常,使用我当前的位置。

不起作用的事情是永远不会触发“显示”事件。我试过在控制器中重载它:

Ext.define('MyApp.controller.Map', {
    extend: 'Ext.app.Controller',

    config: {
        refs: {
            myMap: 'myMap'
        },
        control: {
            myMap: {
                show: 'onMyMapShow'
            }
        }
    },

    onMyMapShow: function(myMap, eOpts) {
        // never enters this function...
    }
});

...以及在控件本身中:

Ext.define('MyApp.view.MyMap', {
    extend: 'Ext.Map',
    xtype: 'myMap',

    config: {
        layout: 'fit',
        useCurrentLocation: true,

        listeners: {
            show: function() {
                // never enters this function either...
            }
        }
    }
});

似乎没有任何效果。如何让 show 事件触发?预计什么时候开火?

4

1 回答 1

0

那是因为调用函数show时不会触发事件。show()

如果您想在显示地图时执行一些代码,那么您需要监听maprenderorpainted事件。

希望这有帮助。

于 2012-11-21T20:35:18.380 回答