应用程序初始化方法(如文档中所宣传的)

时间:2012-05-13 00:32:05

标签: extjs extjs-mvc extjs4.1

我正在使用ExtJS 4.1 RC3 - 遵循MVC模式。今天是我第一次在任何控制器初始化之前需要实现一些逻辑。我记得Ext.app.Application中的this方法,并决定将其投入使用。

似乎永远不会被解雇,我找不到应该解雇的东西。

我发现有一个small unanswered thread关于此方法自2011年9月起无效。海报的解决方案是重构他的应用程序。这是否适用于其他所有人或没有其他人使用它?

我的编码方式与使用启动方法的方式相同。那是错的吗?这是代码的样子:

// app.js
Ext.application({
    name: 'MyApp',

    autoCreateViewport: true,

    controllers: ['myController'],

    init: function() {
        console.log('init'); // this never gets called
    },

    launch: function() {
        console.log('launch'); // this works fine
    }

});

2 个答案:

答案 0 :(得分:3)

这是框架中的一个错误。我推出了一个有望进入4.1.1版本的修复程序。

答案 1 :(得分:3)

我在ExtJs 4.0.7中工作并且init方法不会触发(bug) 无论好坏,我的解决方法是自己打电话。

launch: function() {
    this.init();
    console.log('launch'); // this works fine
}

现在可以访问上面的init方法:

  init: function() {

    console.log('init'); // this gets called
    // For example here's a quick way to stop an Ext Task... 
    this.on({

      stopEvents: function() {
       Ext.TaskManager.stopAll();
      }

    })
  }
},