6

クラスで静的フィールドを作成し、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 ドキュメントのサンプルを見ると、前者の方法でフィールドにアクセスできるはずです。

このリンクの Statics セクションと、Computer.InstanceCount フィールドへのアクセス方法を参照してください。

4

2 に答える 2

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;
    }
});
于 2013-02-28T11:12:39.753 に答える
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]);
    }
});
于 2014-12-10T17:29:06.687 に答える