3

我应该在 Sencha Touch 2 中扩展 Ext.app.Application 类吗?我有几个应用程序通用的功能,例如:为应用程序中配置的所有商店做一些事情。如果是,我如何在 app.js 中启动应用程序?

4

1 回答 1

6

我会回答ExtJS 4.0.x / 4.1.x和 SenchaTouch 2.0.x / 2.1.x

你不应该延长Ext.app.Application

为什么?

您一次只能有一个活动应用程序,应该(需要)始终通过调用来配置和启动Ext.application({...});

与往常一样,有一些方法可以解决这个问题(在两个框架中),然后您可以使用自己的实例。但是不推荐!

需要什么?

基本上,唯一需要做的就是在Ext.application方法中重新实现和扩展代码,以便它能够处理任何其他类Ext.app.Application。我将只添加一个 SenchaTouch 示例,对于 ExtJS,请参见代码下方的 ExtJS4.2 部分。

SenchaTouch 示例

application: function(appClass,config) {
    var appName = config.name,
        onReady, scope, requires;

    if (!config) {
        config = {};
    }

    if (!Ext.Loader.config.paths[appName]) {
        Ext.Loader.setPath(appName, config.appFolder || 'app');
    }

    requires = Ext.Array.from(config.requires);
    config.requires = [appClass];

    onReady = config.onReady;
    scope = config.scope;

    config.onReady = function() {
        config.requires = requires;
        Ext.create(appClass, config);

        if (onReady) {
            onReady.call(scope);
        }
    };

    Ext.setup(config);
},

ExtJS 4.2 的注释

Sencha 宣布了 ExtJS 4.2,它将允许我们从Ext.app.Application类中扩展

于 2013-01-22T12:07:32.410 回答