Extjs4 Sencha建筑师2:onLaunch从未打过电话

Extjs4 Sencha建筑师2:onLaunch从未打过电话,extjs4,sencha-architect,Extjs4,Sencha Architect,我有一个由Sencha Architect 2创建的小应用程序。我已经注意到好几次了,我可以很好地重写控制器和应用程序对象的onLaunch,这个函数永远不会被调用。我使用的是试用版2.0.0,build 412。以下是应用程序代码: Ext.Loader.setConfig({ enabled: true }); Ext.application({ views: [ 'MyContainer', 'MyGridPanel' ],

我有一个由Sencha Architect 2创建的小应用程序。我已经注意到好几次了,我可以很好地重写控制器和应用程序对象的onLaunch,这个函数永远不会被调用。我使用的是试用版2.0.0,build 412。以下是应用程序代码:

Ext.Loader.setConfig({
    enabled: true
});

Ext.application({
    views: [
        'MyContainer',
        'MyGridPanel'
    ],
    autoCreateViewport: true,
    name: 'MyApp',

    onLaunch: function() {
        var container = Ext.getCmp ('glbContainer');

        var cfg = [
        { dataIndex: 'ID', text: 'ID' },
        { dataIndex: 'DISPLAYNAME', text: 'Displayname' }
        ];

        var theGridPanel = this.getComponent ('theGridPanel');

        var config = [];


        for (var jj=0; jj<cfg.length; jj++) {
            var configElem = {};
            configElem.xtype = 'gridcolumn';
            configElem.dataIndex = cfg [jj].dataIndex;
            configElem.text = cfg [jj].text;
            configElem.width = 200;
            config.push (configElem);
        }

        alert (config.length);

        theGridPanel.reconfigure (config);

    }

});
Ext.Loader.setConfig({
已启用:true
});
外部应用程序({
观点:[
“MyContainer”,
“MyGridPanel”
],
autoCreateViewport:true,
名称:“MyApp”,
onLaunch:function(){
var container=Ext.getCmp('glbContainer');
var cfg=[
{dataIndex:'ID',text:'ID'},
{dataIndex:'DISPLAYNAME',text:'DISPLAYNAME'}
];
var theGridPanel=this.getComponent('theGridPanel');
var-config=[];

对于(var jj=0;jj我认为我们没有要重写的
onLaunch
方法。它应该是
launch
。请查看文档。应用程序或控制器类没有onLaunch属性。引用文档:

启动方法:在启动后立即由控制器的应用程序调用 已调用应用程序自己的启动函数。这通常是 运行应用程序UI启动后必须运行的任何逻辑的好地方 初始化。另请参阅init,它在应用程序启动之前调用 启动功能

例如:

Ext.application({
    name: 'MyApp',
    launch: function() {
        Ext.create('Ext.container.Viewport', {
            items: {
                html: 'My App'
            }
        });
    }
});

我认为我们没有要重写的
onLaunch
方法。它应该是
launch
。请查看文档。应用程序或控制器类没有onLaunch属性。引用文档:

启动方法:在启动后立即由控制器的应用程序调用 已调用应用程序自己的启动函数。这通常是 运行应用程序UI启动后必须运行的任何逻辑的好地方 初始化。另请参阅init,它在应用程序启动之前调用 启动功能

例如:

Ext.application({
    name: 'MyApp',
    launch: function() {
        Ext.create('Ext.container.Viewport', {
            items: {
                html: 'My App'
            }
        });
    }
});

Launch是这里使用的正确方法

当应用程序是Ext.app.Controller时,它并不总是像控制器那样执行操作。还要注意,您没有在此处使用Ext.define来定义您的应用程序,您不应该这样做。但是,您正在调用方法Ext.Application({config})

设置应用程序启动方法的正确方法

Ext.application({
    name: 'MyApp',
    controllers: [
        'MyController'
    ],

    launch: function() {

    }

});
Ext.define('MyApp.controller.MyController', {
    extend: 'Ext.app.Controller',

    onLaunch: function() {

    }

});
设置控制器启动方法的正确方法

Ext.application({
    name: 'MyApp',
    controllers: [
        'MyController'
    ],

    launch: function() {

    }

});
Ext.define('MyApp.controller.MyController', {
    extend: 'Ext.app.Controller',

    onLaunch: function() {

    }

});

Launch是这里使用的正确方法

当应用程序是Ext.app.Controller时,它并不总是像控制器那样执行操作。还要注意,您没有在此处使用Ext.define来定义您的应用程序,您不应该这样做。但是,您正在调用方法Ext.Application({config})

设置应用程序启动方法的正确方法

Ext.application({
    name: 'MyApp',
    controllers: [
        'MyController'
    ],

    launch: function() {

    }

});
Ext.define('MyApp.controller.MyController', {
    extend: 'Ext.app.Controller',

    onLaunch: function() {

    }

});
设置控制器启动方法的正确方法

Ext.application({
    name: 'MyApp',
    controllers: [
        'MyController'
    ],

    launch: function() {

    }

});
Ext.define('MyApp.controller.MyController', {
    extend: 'Ext.app.Controller',

    onLaunch: function() {

    }

});

您好,我非常愿意听从您的建议,我一定会尝试启动,但是应用程序和控制器都有一个onLaunch:。文档中说:“这是一个模板方法。这个类的功能有一个钩子。请在子类中随意重写它。”啊!!我完全弄错了!现在我明白你想做什么了!嗨,我非常愿意听从你的建议,我一定会尝试启动,但是应用程序和控制器都有一个onLaunch:。文档说:“这是一个模板方法。这个类的功能的一个挂钩。请在子类中随意重写它。”啊!!我完全错了!现在我明白你想做什么了!