Проблема определения объема с PhoneGap и Sencha Touch - PullRequest
0 голосов
/ 14 июня 2011

У меня проблемы с настройкой области видимости с помощью приложения ниже. к тому времени, когда я вызываю this.fireEvent, я больше не ограничен в своем приложении, а скорее окном документа.

Есть идеи?

DN.App = Ext.extend(Ext.Panel, {
    initComponent: function() {     
        document.addEventListener("backbutton", this.backKey, true);
        DN.App.superclass.initComponent.call(this);     
   },

    setActivePanel: function(){
        //global handler for switching panels
    },

    backKey: function(){
        var prev = DN.App.prevPanel[DN.App.prevPanel.length-1];
        DN.App.prevPanel.pop();

        //This handles the switching of panels, but 'this' is scoped to html document at this point
        this.fireEvent('setActivePanel',prev);
    }
});

Найден ответ Бах, я работал над этим пару часов, прежде чем писать, потом выяснил это через 8 минут. Я попытался использовать DN.App.fireEvent, но это тоже не сработало. Тогда я понял, что DN.App - это просто класс, который я создал, а не реальный объект. В другом файле я называю это DNApp = new DN.App(); Увидев, что я попробовал DNApp.fireEvent, и он отлично работал.

1 Ответ

1 голос
/ 14 июня 2011

Проблема в том, что «document.addEventListener (« backbutton », this.backKey, true);», когда событие вызывается, ожидается, что ключевое слово «this» будет связано с объектом, который его вызвал, вы можете достичьвы хотите с закрытием, как:

document.addEventListener("backbutton", (function(self){ return function(){ self.backKey(); }; })(this), true);
...