我使用sencha touch 2.2.1完成了我的第一个应用程序。现在我将它上传到我的服务器上并试图用我的手机访问它。一切都很好。我的仪表板包含6个按钮,但只有1个按钮正常工作。彼此抛出以下错误
TypeError:'undefined'不是对象(评估'name.substring')
函数parseNamespace中发生错误。但我不知道出了什么问题。我使用Sencha Architect构建应用程序,在预览中一切都很好。测试包是使用架构师的构建按钮创建的。如果有人可以帮助我,该应用程序位于此处:app.ttv-rees-groin.de
非常感谢
答案 0 :(得分:0)
这可能是课程加载的问题。在按钮事件发生时引用的类可能当时不会被加载。
打包申请时可能会错过这些课程。
答案 1 :(得分:0)
我的经验发现,Architect的构建和包工具创建了大量不必要的文件,远远超出了要求。技术细节:架构师2 - 所有版本,Sencha Touch 2.0-2.2.x,包括其间的所有版本,Sencha Cmd 3.x
在Architect中开发的最干净,最精简的构建技术是使用Sencha Cmd来保存构建。
sencha app build
执行默认的“生产”构建。
在这种情况下,输出的差异从生产文件夹中的32MB转储文件(包括所有资源,库,扩展等)到最小所需文件总计0.8MB,并且不再需要触摸库作为仅类需要编译到应用程序中。
至于手头的错误,这个错误与类名称空间,别名和xtype有关。
(快感谢http://ruidevnotes.wordpress.com/2013/07/25/sencha-ext-js-4-common-typeerror/,为这四件事做了大量的输入,以便检查。)
可能的解决方案:
除了这些要点之外,我还记得列表插件的一个问题,我认为这与您遇到的错误相同。预建 - 会起作用。发布后,问题和错误。我能够解决这个错误的方法是通过这种技术:
requires: [
'Ext.XTemplate',
'Ext.plugin.ListPaging'
],
config: {
..., // other standard configs removed for brevity
plugins: [
{
xclass: 'Ext.plugin.ListPaging',
autoPaging: true,
type: 'listpaging'
}
]
}
需要注意的是夸张的插件声明。如果没有这个全面的声明,ListPaging插件会引起各种各样的痛苦和混乱,并且仅仅是在构建之后。
编辑:拼写。