2012-12-13 125 views
6

如何在類中創建靜態字段,然後在Sencha Touch 2中從該類之外訪問它們?在Sencha Touch中訪問靜態屬性

例如,我創建了一個簡單單用一個靜態:

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.USERApp.util.Config .self.url.USER。看着在煎茶文檔樣本,看來我應該能夠能夠訪問前一種方法的領域:

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

+0

對我工作的罰款。是否App.util.Config.url未定義? App.util.Config.self返回什麼? –

+0

App.util.Config.url \t'undefined' App.util.Config.self \t'函數(){ \t返回this.constructor.apply(此,自變量); \t}' App.util.Config.self.url.USER \t'的 「http://本地主機:3436/API /用戶」' – Nate

+1

另外一個資料片,可能是相關的,我不是'分機。創建(...)這個類,但是在app.js中需要它:[ 'Ext.MessageBox', 'App.data.ConnectionRouter', 'App.util.Config' ] – Nate

回答

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

我什麼意識到這是一個古老的問題,但我在尋找別的東西時偶然發現了它。

我相信問題是使用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]); 
    } 
}); 
相關問題