访问Sencha Touch中的静态属性

时间:2012-12-13 13:49:34

标签: extjs sencha-touch-2

如何在类中创建静态字段,然后在Sencha Touch 2中从该类外部访问它们?

例如,我创建了一个带有单个静态的简单单例:

Ext.define('App.util.Config', {
    singleton: true,
    statics: {
        url: {
            USER: 'http://localhost:3436/api/user'
        }
    },
    config: { },
    constructor: function (config) {
        this.initConfig(config);
        this.callParent([config]);
    }
});

我无法使用 App.util.Config.url.USER 访问USER字段,但使用 App.util.Config.self.url.USER 。查看Sencha文档上的示例,看起来我应该能够以前一种方式访问​​该字段:

See Statics Section in this link and how they access the Computer.InstanceCount field

2 个答案:

答案 0 :(得分:6)

我认为这就是你想要的

Ext.define('App.util.Config', {
    singleton: true,
    statics: {
        url: {
            USER: 'http://localhost:3436/api/user'
        }
    },
    config: { },
    constructor: function (config) {
        var user=this.self.url.User;
    }
});

答案 1 :(得分:1)

我意识到这是一个古老的问题,但在寻找其他东西时我偶然发现了它。

我认为问题在于使用singleton:true。使用它时,一切都是静态的,不需要将属性显式定义为静态。

以下应该是正确的用法:

Ext.define('App.util.Config', {
    singleton: true,
    url: {
        USER: 'http://localhost:3436/api/user'
    },
    config: { },
    constructor: function (config) {
        this.initConfig(config);
        this.callParent([config]);
    }
});