Sencha Touch 2按钮在部署后单击不起作用



我有一个煎茶触摸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'
    }
}
})

有人遇到过这种情况吗?任何帮助将不胜感激。

打开你的 DOM 编辑器(我相信在 chrome 中是 F12)。控件选择器正在选择 #main 函数,因此您需要确保这是一个有效的选择器。

在开发人员工具窗口的控制台上,键入:

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

这应该是控制器正在尝试的。

经过大量调试,我设法解决了这个问题。事实证明,使用以下代码生成任何组件在部署后将无法正常工作:

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

相反,您必须使用 xtypes 而不是 new 关键字。我认为这与部署程序将所有 js 代码存储在一个文件中的事实有关,因此由于我使用的是 new 关键字,它是在 js 文件中的某个地方创建的,而实际上它不会存在于上下文中。奇怪的是它没有显示任何错误,所以希望这会帮助其他人。

最新更新