我应该在Sencha Touch 2中扩展Ext.app.Application类吗?

iso*_*tel 3 extjs extend touch sencha-touch

我应该在Sencha Touch 2中扩展Ext.app.Application类吗?我有几个应用程序常用的功能,例如:为应用程序中配置的所有商店执行某些操作.如果是,我如何在app.js中启动应用程序?

sra*_*sra 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);
},
Run Code Online (Sandbox Code Playgroud)

ExtJS 4.2的注释

Sencha宣布了ExtJS 4.2,这将允许我们从Ext.app.Application课堂上扩展