我真的是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/

10-11 11:29