出现该错误的原因是Ext的自动加载功能没有被开启,常见的修改方式是通过手动添加代码来实现。
比如在程序适当的位置加入以下代码段:
Ext.Loader.setConfig({enabled:true});
以下是我问题的解决方法:
在这里我使用了Ext中的controller,这里有两个Js文件,如下
Ext.application({ name: 'AM', appFolder: 'app', controllers: [ 'Users' ], launch: function() { Ext.define('WeatherPoint', { extend: 'Ext.data.Model', fields: ['temperature', 'date'] }); var store = Ext.create('Ext.data.JsonStore', { fields: ['name', 'data1', 'data2', 'data3', 'data4', 'data5'], data: [ {'name':'metric one', 'data1':10, 'data2':12, 'data3':14, 'data4':8, 'data5':13}, {'name':'metric two', 'data1':7, 'data2':8, 'data3':16, 'data4':10, 'data5':3}, {'name':'metric three', 'data1':5, 'data2':2, 'data3':14, 'data4':12, 'data5':7}, {'name':'metric four', 'data1':2, 'data2':14, 'data3':6, 'data4':1, 'data5':23}, {'name':'metric five', 'data1':27, 'data2':38, 'data3':36, 'data4':13, 'data5':33} ] }); Ext.create('Ext.chart.Chart', { renderTo: Ext.getBody(), width: 400, height: 300, store: store, axes: [ { title: 'Temperature', type: 'Numeric', position: 'left', fields: ['temperature'], minimum: 0, maximum: 100 }, { title: 'Time', type: 'Time', position: 'bottom', fields: ['date'], dateFormat: 'ga' } ] }); } });在上面的脚本中,我引入了一个Controller
Ext.define('AM.controller.Users', { extend: 'Ext.app.Controller', init: function() { console.log('Initialized Users! This happens before the Application launch function is called'); } });这是我定义的controller
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Hello Ext</title> <link rel="stylesheet" type="text/css" href="resources/css/ext-all.css"> <script type="text/javascript" src="bootstrap.js"></script> <script type="text/javascript" src="ext-debug.js"></script> <script type="text/javascript" src="app.js"></script> </head> <body> </body> </html>以上html文件是我问题所在,如上程序是可以正常运行的,Controller可以正常的监听事件。
但若是将其中两个文件引入的顺序对换后就出抛出Ext.Loader is not enabled错误,提示找不到AM.controller.Users,替换两个文件的位置如下所示:
<script type="text/javascript" src="ext-debug.js"></script> <script type="text/javascript" src="bootstrap.js"></script>
总之, 如果大家也遇到了这样的问题不妨可以这样解决,而且,提示的一点是在Ext中文件的引入顺序也是有要求的。