Проблемы Sencha Touch с MVC: Неперехваченная ошибка типа: функция объекта (){ superclass.apply(this, аргументы); } не имеет метода ‘setActiveItem’

#sencha-touch

#sencha-touch

Вопрос:

У меня есть представление списка, которое расширяет панель, и я определяю прослушиватель для itemtap события, которое выполняет Ext.dispatch для моего контроллера, что я в основном хочу установить мое представление формы как активное. В действии моего контроллера метод выглядит следующим образом:

 itemTap : function(dataObj) {
    var views = dataObj.views,
    contactForm = views.contactForm,
    model = dataObj.model;
    console.log(dataObj);

    contactForm.loadRecord(model);

    this.application.Viewport.setActiveItem(contactForm, {type:'slide', direction:'right'});
}
  

Я получаю сообщение об ошибке в моей последней строке этого действия: Uncaught TypeError: Object function (){ superclass.apply(this, arguments); } has no method 'setActiveItem' и мне трудно расшифровать это сообщение об ошибке. Что я делаю не так?

Комментарии:

1. Является this.application.Viewport функцией? (Похоже, что так оно и есть.)

2. @Matt это относится к пространству имен, которое было создано при регистрации класса Viewport.

3. @Мэтт, ты навел меня на правильный путь к ответу. Мне нужно было заменить строку-нарушение на: MyApp.viewport.setActiveItem(contactForm, {type:'slide', direction:'right'}); (строчная буква «v»)

4. Эй, Буффало, если ты решил свою проблему, я думаю, ты можешь закрыть вопрос, не так ли? Один совет: перенесите свою бизнес-логику в контроллеры и отправляйте на них. Таким образом, представления остаются ответственными только за графическую часть. Если ваше приложение начнет расти, в противном случае вы вызовете у себя проблемы с ремонтопригодностью. Удачи