这是一份学习和实践Sencha(包括Extjs和Sencha Touch)的过程中的错误记录,随着实践进行,列表将不断更新。
解决办法:
sencha cmd可能版本错误。我是根据Extjs 4.2文档操作的,文档中提示操作不是很成功。
注意两点:
1)sencha cmd安装成功后,一定要查看版本,版本一般在3以上
(我的错误,就是因为安装完了版本为2,不清楚具体原因,于是重新安装了)。
2)进入sdk目录下运行新建工程的generate命令,例如进入 E:\ext-4.2.1.883,然后运行:
E:\ext-4.2.1.883>sencha generate app MyApp D:\senchaEx
Sencha Cmd v5.0.0.160
[INF] Loading app json manifest...
......
即可成功。
至于那个sdk tool,此时还不需要,也可以成功运行该命令。
也许由于历史或技术支持原因,尽管Extjs5已经发布,仍需要采用Extjs4.2。
解决办法:
情况一 : 将Extjs源文件包含于工程中使用,请参看: xiaokui_wingfly的专栏
这里没有办法直接覆盖Extjs源文件TabCloseMenu.js ,采用的办法是在程序启动时覆盖默认的TabCloseMenu,方法是在application 的launch方法里面添加以下代码:
launch: function() { //fix the bug of Extjs4.2 tabCloseMenu Ext.ux.TabCloseMenu.override({ createMenu: function () { var me = this; if (!me.menu) { var items = [{ text: me.closeTabText, iconCls: this.closeTabIconCls, scope: me, handler: me.onClose }]; if (me.showCloseAll || me.showCloseOthers) { items.push('-'); } if (me.showCloseOthers) { items.push({ text: me.closeOthersTabsText, iconCls: this.closeOtherTabsIconCls, scope: me, handler: me.onCloseOthers }); } if (me.showCloseAll) { items.push({ text: me.closeAllTabsText, iconCls: this.closeAllTabsIconCls, scope: me, handler: me.onCloseAll }); } if (me.extraItemsHead) { items = me.extraItemsHead.concat(items); } if (me.extraItemsTail) { items = items.concat(me.extraItemsTail); } me.menu = Ext.create('Ext.menu.Menu', { items: items, listeners: { hide: me.onHideMenu, scope: me, delay: 1 } }); } return me.menu; } }); }