我已经将用于 ext + deftjs 应用程序的构建工具从 Sencha SDK 升级到 Sencha Cmd (v3)。为此,我还将 Ext 升级到 4.2,将 Deft 升级到 Ext 0.8。我最初遇到了 Ext.onReady() 没有被触发的问题,导致我的 viewControllers 没有从它们相应的视图中实例化。但是,我已经解决了这个问题,应用程序现在正在开发模式下工作
我现在正在尝试使用命令构建应用程序sencha app refresh,sencha app build但构建的应用程序根本没有加载。
同样,我的 ViewControllers 没有被实例化。构建工具已将 deft 类和视图控制器添加到 all-classes.js。(Deft 类首先在文件 + 视图控制器中进一步向下)
sencha.cfg包含以下类路径:
app.classpath=${app.dir}/Deft,${app.dir}/ux,${app.dir}/uvd,${app.dir}/app,${app.dir}/inj.js,${app.dir}/app.js
inj.js包含我的加载器声明:
Ext.Loader.setConfig({
enabled:true,
paths:{
'UVd': 'uvd',
'Ext.ux' : 'ux',
'Deft' : 'Deft',
'FM' : 'app',
'Ext': 'ext/src'
}
});
Ext.syncRequire([
"Ext.Component",
"Ext.ComponentManager",
"Ext.ComponentQuery",
'Deft.mixin.Controllable',
'Deft.mixin.Injectable',
'Deft.Injector'
]);
我的主视口是要实例化的第一个视图,它包含以下声明:
Ext.define('FM.view.Viewport', {
extend: 'Ext.panel.Panel',
requires: [
'FM.controller.Viewport'
],
// DI
controller: 'FM.controller.Viewport'
我的开发index.html看起来像这样:
<!-- <x-compile> -->
<!-- <x-bootstrap> -->
<script src="ext/ext-all.js"></script>
<script src="bootstrap.js"></script>
<!-- </x-bootstrap> -->
<script type="text/javascript" src="inj.js"></script>
<script src="app.js"></script>
<!-- </x-compile> -->
有谁知道为什么视图控制器不会在应用程序的编译版本中实例化?
谢谢