Sencha的全局变量

时间:2013-01-16 06:14:03

标签: extjs

我还不熟悉sencha。

我有查询。我们如何在代码之后定义如下所述的变量。

我在下面写一个senario:

Ext.application({
    name: 'Sencha',
    requires: ['Ext.device.Geolocation'],
   launch: function() {
        var panel = Ext.create("Ext.Panel", {
            fullscreen: true,
           items: [
               {
                html: 'Finding Location...'
                }   
            ]
        });

        Ext.device.Geolocation.getCurrentPosition({
            success: function(position) {
                var coordinates = position.coords;

                var location = "Longitude " + coordinates.longitude + " Latitude " + coordinates.latitude;
                panel.setHtml(location);
            },
            failure: function() {
                console.log('something went wrong!');
            }
        });


    }

});

我希望变量'coordinates'在'success:function(position)'之外和启动函数内部可用。

我们如何实现这一点。

1 个答案:

答案 0 :(得分:1)

只需在另一个范围内定义回调方法,如此

Ext.application({
    name: 'Sencha',
    requires: ['Ext.device.Geolocation'],
    launch: function() {
        var panel = Ext.create("Ext.Panel", {
            fullscreen: true,
           items: [
               {
                html: 'Finding Location...'
                }   
            ]
        });

        Ext.device.Geolocation.getCurrentPosition({
            success: onPositionSuccess, 
            failure: function() { console.log('failed') },
            scope: this // added scope for the callback
        });


    },
    coordinates: null, // to prevent undefined the property get defined with null

    onPositionSuccess: function(position) {
        this.coordinates = position.coords;

        var location = "Longitude " + coordinates.longitude + " Latitude " + coordinates.latitude;
        panel.setHtml(location);
    }
});

您现在可以访问应用程序中的coordinates属性。