Понимание сенсорной модели объекта Sencha - PullRequest
0 голосов
/ 18 сентября 2011

Хорошо, у меня есть следующее определение класса:

MyApp.views.ItemAction = Ext.extend(Ext.ActionSheet, {
  items: [{
    text: 'cancel',
    handler: function(){
      this.hide();
    }
  }]
});

Когда я создаю экземпляр ItemAction и show(), появляется лист действий. Brilliant.

Теперь моя проблема: нажатие кнопки cancel скроет саму кнопку, а не родительский лист.

Как мне решить эту проблему?

Приветствия

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

Вы также можете попробовать

handler: function(){
            this.up().hide();
         }

вверх, чтобы перейти вверх по цепочке владельцев.Вызов этого без каких-либо переменных получит непосредственный владелец.Но вызывать уничтожение - это тоже хорошая идея, так как он удалит лист из домена.

0 голосов
/ 18 сентября 2011

Хорошо, поэтому я исправил свой код так:

MyApp.views.ItemAction = Ext.extend(Ext.ActionSheet, {
    id: 'itemaction',
    items: [{
        text: 'cancel',
        handler: function(){
          Ext.getCmp('itemaction').destroy();
          //do other stuff here...
        }
    }]
});

И это работает; Я буду использовать это сейчас, но, конечно, я буду признателен за менее хитрое решение (и нет, установка элемента scope на this не работает - я получаю объект DomWindow, если я сделаю это).

Приветствия

...