Javascript 在ExtJS控制器中未调用onLaunch函数

Javascript 在ExtJS控制器中未调用onLaunch函数,javascript,extjs,Javascript,Extjs,我对ExtJS非常陌生,我花了几个小时试图解决这个问题,但没能解决。我有一个带有“onLaunch”函数的控制器,但它从未被调用 我在应用程序“启动”函数中包含了控制器的.js文件。这就是为什么我将控制器的'init'函数更改为'onLaunch',我读到'init'是在应用程序'launch'之前调用的,而'onLaunch'是在应用程序'launch'之后调用的 我用“console.log”检查了我的.js文件是否已被读取,所以我不明白为什么“onLaunch”函数没有 这里是控制器文件,

我对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函数中。