我真的是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”消息。
有人能帮我吗 ?
最佳答案
您的代码仅定义了类(这是Ext.Define
方法的目的),但没有实例化它。您需要在定义的类上调用Ext.create以实际创建实例。我怀疑您的onLaunch函数会被调用。 (有关更多信息,请参见我链接的ExtJS文档。)
关于javascript - 在ExtJS Controller 中未调用onLaunch函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9940725/