Javascript 如何在Sencha Touch 2的视图中定义自己的功能

Javascript 如何在Sencha Touch 2的视图中定义自己的功能,javascript,model-view-controller,google-maps-api-3,sencha-touch,sencha-touch-2,Javascript,Model View Controller,Google Maps Api 3,Sencha Touch,Sencha Touch 2,我试图在Sencha Touch 2中定义我自己的函数,但仍然得到一个错误: 未捕获引用错误:未定义函数22 我负责这个的文件是:View目录中的Position.js Ext.define('GS.view.Position', { extend: 'Ext.Map', xtype: 'map', config: { title: 'Position', iconCls: 'time', useCurrentLocation:true, mapOptions

我试图在Sencha Touch 2中定义我自己的函数,但仍然得到一个错误:

未捕获引用错误:未定义函数22

我负责这个的文件是:View目录中的Position.js

Ext.define('GS.view.Position', {
extend: 'Ext.Map',

xtype: 'map',

config: {
    title: 'Position',
    iconCls: 'time',
    useCurrentLocation:true,
    mapOptions: {
        zoom: 19
    },

    listeners: {
        maprender : function(comp, map){
            //new google.maps.LatLng,
            marker = new google.maps.Marker({
                position: new google.maps.LatLng(this._geo.getLatitude(), this._geo.getLongitude()),
                title: '1',
                map: map
            });
            google.maps.event.addListener(marker, 'click', function22);
            new google.maps.Marker({
                position: new google.maps.LatLng(51.266064,15.562048),
                title: '1',
                map: map
            });
        }
    }
},
function22: function(){
    alert('some alert');
}
});

Sencha touch是唯一的Javascript!Javascript的一切都将与sencha touch一起使用

这就是解决这个问题的方法:

在html中,在插入任何其他javascript之前,我写这行:

<script type="text/javascript">var MYGLOBALOBJECT={v:{},f:{}};</script>
因为在Javascript中,函数只是另一种类型的变量,所以您也可以在这个全局对象中存储函数,这就是我使用的
MYGLOBALOBJECT.f
的目的:

MYGLOBALOBJECT.f.aGlobalFunction = function (parameter) {
    // do something useful
};
您可以在代码中的任何地方使用此函数,如下所示:

MYGLOBALOBJECT.v.myNumber = 123.45;
MYGLOBALOBJECT.v.justASrting = 'this is a string';
var xy = MYGLOBALOBJECT.f.aGlobalFunction(someValue);
由于
MYGLOBALOBJECT
i在任何花括号外定义,因此它是一个全局对象,您可以在任何地方使用它