2012-12-13 16 views
6

Bir sınıfta statik alanlar nasıl oluşturulur ve Sencha Touch 2'de bu sınıfın dışından bunlara nasıl erişirsiniz? App.util.ConfigSencha Touch'da statik özelliklere erişme

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]); 
    } 
}); 

Ben App.util.Config.url.USERkullanarak KULLANICI alanını erişemez ancak ile: Tek bir statik ile basit singleton'ununu oluşturduk Örneğin

.self.url.USER. Sencha dokümanlar üzerinde bir numune baktığımızda, ben eski bir şekilde alanına erişmek mümkün gerekir görünür: See Statics Section in this link and how they access the Computer.InstanceCount field

+0

benim için iyi çalışma:

şu doğru kullanımı olmalıdır. App.util.Config.url undefined nedir? App.util.Config.self ne döndürüyor? –

+0

App.util.Config.url \t ' App.util.Config.self \t' fonksiyonu() { \t dönüş this.constructor.apply (bu, bağımsız değişkenler) undefined'; \t} ' App.util.Config.self.url.USER \t' "http: // localhost:/kullanıcı 3436/API" Ben 'Dahili değilim alakalı olabilir bilgilerin' – Nate

+1

bir diğer parçası. Bu sınıfın (...) 'yi yaratması gerekir, ancak bunu app.js’de gerektirir: [ 'Ext.MessageBox', 'App.data.ConnectionRouter', 'App.util.Config' ],' – Nate

cevap

6

Bunu düşünüyorum

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

I istediğim şey Bunun eski bir soru olduğunu anlıyorum, ama başka bir şey ararken bunun üzerine geldim.

Bu sorunun singleton:true kullanımı olduğuna inanıyorum. Bu kullanıldığında, her şey statiktir ve özelliği açıkça statik olarak tanımlamaya gerek yoktur.

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