0

我刚刚意识到 ExtJS 4.2.1 中控制器的备用类名不能按我预期的方式工作:

Ext.define('AppName.controller.subnamespace.Controller1', {
    extend: 'Ext.app.Controller',
    alternateClassName: 'AppName.Ctrl1',
    // ...
});

使用应用程序(或任何控制器)的 getController 方法访问控制器适用于两个名称(长名称和备用名称),但返回控制器的 2 个不同实例:

var ctrlInstance1 = AppName.app.getController('AppName.controller.subnamespace.Controller1'),
    ctrlInstance2 = AppName.app.getController('AppName.Ctrl1');

console.log(ctrlInstance1 === ctrlInstance2); // --> false

这是预期的行为还是错误?如果它是一个错误,我将提交一个错误报告......

谢谢

Ps.:我也在官方煎茶论坛上问过这个问题,但到目前为止没有得到任何回应:http ://www.sencha.com/forum/showthread.php?271970-Alternate-class-name-in -控制器

4

1 回答 1

0

这是编写令人困惑的代码的可靠方法。发明了替代类名功能以提供与以前的 Ext 版本的向后兼容性,其中某些组件的类名不同。它不应该在应用程序代码中使用,除非你想让你的应用程序更难维护。

于 2013-09-17T18:52:40.380 回答