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