Нажатие кнопки 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')
Это должно быть то, что пытается контроллер.