我是ExtJS的新手,我花了几个小时试图解决这个问题,但事实并非如此。我有一个带有'onLaunch'功能的控制器,但它永远不会被调用。
我在应用程序的“启动”功能中包含了我的控制器的.js文件。这就是我将控制器的'init'功能更改为'onLaunch'的原因,我读到'init'在应用程序'launch'和'onLaunch'之前被调用。
我用'console.log'检查我的.js文件被读取了,所以我不明白为什么'onLaunch'功能不是......
这里的控制器文件,代码非常简单,这是我的第一个应用程序,我想在开始之前尝试一些事情:
console.log('BROWSER CONTROL');
Ext.define('WSR.controller.BrowserControl', {
extend: 'Ext.app.Controller',
views: [
'Browser'
],
onLaunch: function() {
console.log('ONLAUNCH BrowserControl');
this.control({
'viewport > panel': {
render: this.onPanelRendered
},
'browser': {
selectionchange: this.onSelectionChanged
}
});
},
onPanelRendered: function() {
console.log('PanelRendered');
},
onSelectionChanged: function() {
console.log('SelectionChanged');
}
});
在Firebug控制台中,我可以看到“BROWER CONTROL”消息,但从未看到“ONLAUNCH”消息。
有人可以帮助我吗?
答案 0 :(得分:2)
您的代码只定义了类(这是Ext.Define
方法的用途),但不实例化它。您需要在已定义的类上调用Ext.create来实际创建实例。我怀疑你的onLaunch函数会被调用。 (有关详细信息,请参阅我链接的ExtJS文档。)