Нажатие кнопки Sencha Touch 2 не работает после развертывания

У меня есть приложение sencha touch 2, которое работает без нареканий. Однако при развертывании в тестовом, производственном или штатном режимах у меня есть несколько кнопок в виде навигации с событиями касания, которые больше не будут работать. Ошибки не отображаются. Я не могу понять, почему это происходит только после развертывания.

Вот соответствующий код:

контроллер:

control: {

        '#main-function': {
            tap: 'loadFunction'
         },


         loadMyBoat: function() {
              this.getProducts().up().push({
          xtype: 'myxtype',
         })



         Ext.getStore('Items').getProxy().setUrl('myurl');
         Ext.getStore('Items').load();
},

Посмотреть:

Ext.define('MyBoat.view.ItemList', {
extend: 'Ext.navigation.View',
xtype: 'myxtype',

config: {
    title: 'My Title',
    styleHtmlContent: true,
    defaultBackButtonText: 'Items List',

    items: {
        xtype: 'list',
        itemTpl: '{Field_Name}',


        title: 'Tap on a boat to access further details',
        store: 'Boats'
    }
}
})

Кто-нибудь когда-нибудь сталкивался с этим? Любая помощь будет принята с благодарностью.

2 ответа

Решение

После многих отладок мне удалось решить проблему. Оказывается, что использование следующего кода для генерации любого компонента не будет хорошо работать после развертывания:

new Ext.button({.....})

Вместо этого вы должны использовать xtypes, а не новое ключевое слово. Я думаю, что это как-то связано с тем, что развертыватель хранит весь код js в одном файле, и, таким образом, поскольку я использовал ключевое слово new, он создавался где-то в файле js, когда его фактически не существует в контексте., Странно то, что он не показывает никаких ошибок, так что, надеюсь, это поможет другим людям.

Откройте редактор DOM (в Chrome, F12, я верю). Ваш селектор управления выбирает #main-function, поэтому вам нужно убедиться, что это правильный селектор.

В консоли окна инструментов разработчика введите:

Ext.ComponentQuery.query('#main-function')

Это должно быть то, что пытается контроллер.

Другие вопросы по тегам