Javascript 打包后按钮侦听器停止触发

Javascript 打包后按钮侦听器停止触发,javascript,sencha-touch,sencha-touch-2,sencha-touch-2.3,Javascript,Sencha Touch,Sencha Touch 2,Sencha Touch 2.3,我有几个按钮,即使在包装后也能正确触发,它们是以完全相同的方式声明的。这个按钮唯一明显的变化是它被放置在一个模态中 侦听器正在正确初始化,我可以通过执行(getbutton).fireEvent('tap')来触发它 该元素正确地位于所有其他元素的顶部,当我在devtools中检查它时,它是最顶部的元素。 这些按钮在打包之前工作正常,我尝试了基本Ext.Button类和自定义Button类,但在打包之后两者都不工作 以下是按钮的屏幕截图: 一些相关代码 按钮声明: { xtype: 'i

我有几个按钮,即使在包装后也能正确触发,它们是以完全相同的方式声明的。这个按钮唯一明显的变化是它被放置在一个模态中

侦听器正在正确初始化,我可以通过执行
(getbutton).fireEvent('tap')
来触发它

该元素正确地位于所有其他元素的顶部,当我在devtools中检查它时,它是最顶部的元素。
这些按钮在打包之前工作正常,我尝试了基本Ext.Button类和自定义Button类,但在打包之后两者都不工作

以下是按钮的屏幕截图:

一些相关代码

按钮声明:

{
 xtype:   'iconButton'
 iconCls: 'fa fa-close'
 listeners: tap:->
   @rootView ?= @up('imageEditor')
   @rootView.cancel()
}

xtype:'button'
也不会触发处理程序。而且
xtype:'button'
handler:->
也不会触发它。

您在哪里定义了@rootView(看起来您在这里使用了第二个库或框架)。没有逗号,侦听器定义对我来说不起作用。你在哪里定义了图标按钮。你也能展示一下吗?为什么不使用处理程序而不是侦听器呢?我找到了问题的根源。这是因为视图是一个单例,并且在构建包时事件处理程序没有在单例上注册(可能是一个bug)。通过删除singleton语句并使用Ext.create创建视图,它们被正确绑定,并按预期工作。没有逗号和@rootView的原因是因为它是Coffeescript.Coffeescript。有趣。