Как определить собственную функцию в представлении Sencha Touch 2 - PullRequest
1 голос
/ 31 марта 2012

Я пытаюсь определить свою собственную функцию в Sencha Touch 2 и все еще получаю ошибку:

Uncaught ReferenceError: функция 22 не определена

И мой файл отвечает за это: Position.js в директории View

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');
}
});

1 Ответ

2 голосов
/ 31 марта 2012

Сенча сенсорный это только Javascript! Все, что верно для Javascript, будет работать и с Sencha Touch!

Вот как удалось решить эту проблему:

В html, перед вставкой любого другого javascript, я пишу эту строку:

<script type="text/javascript">var MYGLOBALOBJECT={v:{},f:{}};</script>

MYGLOBALOBJECT - массив с 2 предметами, названными v и f. MYGLOBALOBJECT.v - это хеш, где я могу хранить все свои переменные следующим образом:

MYGLOBALOBJECT.v.myNumber = 123.45;
MYGLOBALOBJECT.v.justASrting = 'this is a string';

Поскольку в Javascript функции являются просто еще одним типом переменной, вы также можете хранить функции в этом глобальном объекте, вот что я использую MYGLOBALOBJECT.f для:

MYGLOBALOBJECT.f.aGlobalFunction = function (parameter) {
    // do something useful
};

Вы можете использовать эту функцию в любом месте своего кода следующим образом:

var xy = MYGLOBALOBJECT.f.aGlobalFunction(someValue);

Поскольку MYGLOBALOBJECT i определяет вне любой фигурной скобки, это глобальный объект, и вы можете использовать его везде, где захотите.

...