Javascript 在ExtJS控制器中未调用onLaunch函数
我对ExtJS非常陌生,我花了几个小时试图解决这个问题,但没能解决。我有一个带有“onLaunch”函数的控制器,但它从未被调用 我在应用程序“启动”函数中包含了控制器的.js文件。这就是为什么我将控制器的'init'函数更改为'onLaunch',我读到'init'是在应用程序'launch'之前调用的,而'onLaunch'是在应用程序'launch'之后调用的 我用“console.log”检查了我的.js文件是否已被读取,所以我不明白为什么“onLaunch”函数没有 这里是控制器文件,代码非常简单,这是我的第一个应用程序,我想在开始之前尝试一些东西:Javascript 在ExtJS控制器中未调用onLaunch函数,javascript,extjs,Javascript,Extjs,我对ExtJS非常陌生,我花了几个小时试图解决这个问题,但没能解决。我有一个带有“onLaunch”函数的控制器,但它从未被调用 我在应用程序“启动”函数中包含了控制器的.js文件。这就是为什么我将控制器的'init'函数更改为'onLaunch',我读到'init'是在应用程序'launch'之前调用的,而'onLaunch'是在应用程序'launch'之后调用的 我用“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控制台中,我可以看到“浏览器控制”消息,但从来没有看到“ONLAUNCH”消息
有人能帮我吗?您的代码只定义了类(这就是
Ext.Define
方法的作用),但没有实例化它。您需要调用已定义的类来实际创建实例。我怀疑你的onLaunch函数会被调用。(有关更多信息,请参阅我链接的ExtJS文档。)似乎您是对的,但我找不到正确的位置来实例化控制器。最后,我使用了应用程序的“controllers”属性,它加载.js文件并实例化该类。我的项目经理不想要这种方法,但它似乎容易得多。感谢您的回答。Sencha通常也建议您将控制函数调用放在init函数中。