2

効用関数でクラスを定義したい。Extjsクラスシステムを使用しています。

私はこれを次のように行っています:

Ext.ns('Controls.Plugins.Nzok')

Ext.define('Controls.Plugins.Nzok.XUtility', {
     statics : {
         getTest : function(test) { return test }
     }
})

getTestメソッドを使用する場合は、クラスを要求し、完全なクラス名を記述する必要があります。

Ext.define('Controls.Plugins.Nzok', {
    requires : ['Controls.Plugins.Nzok.XUtility'],

    useTest : function() {
        var testResult = Controls.Plugins.Nzok.XUtility.getTest(2);
    }
})

私の問題は、表記が長すぎることです。Controls.Plugins.Nzok.XUtilityを毎回書き留めるのは非常に不便です。解決策はありますか?

4

1 に答える 1

7

設定はalternateClassNameトリックを行います。

Ext.define('Controls.Plugins.Nzok.XUtility', {
    alternateClassName: 'Controls.XUtil',  // <--- this is your shorthand
    statics : {
        getTest : function(test) { return test }
    }
});

ちなみに、Ext.defineはクラス名に基づいて名前空間を自動的に作成するので、名前空間をExt.define('Controls.Plugins.Nzok.XUtility'生成しControls.Plugins.Nzokます。

于 2012-08-23T17:15:13.153 に答える