2012-09-25 161 views
0

我想知道如何將更傳統的屬性類納入ExtJS 4的動態加載?在Ext3的,如下我將創建一組屬性:在ExtJS4中創建屬性的最佳方法是什麼?

org.config.appName = "appname"; 
org.config.browser = {}; 
org.config.browser.Browsers = [ 
    { 
     name: 'Chrome', 
     .... 
    } 
]; 

也想象一下,我將創造下組織了一組擴展的對象:

org.foo = Ext.extend('Ext.Panel', { 
    ... 
}); 

在的Ext4,當我加載屬性,org尚未創建,因此會引發錯誤。這給我留下,我認爲,兩種方式來解決這個問題:

  1. 定義組織:if(typeof org === 'undefined') { org = {}; }
  2. 動態加載的特性作爲單:

    Ext.define('org.config',{ 
        singleton: true, 
        appName: "appname", 
        browser: { 
         Browsers: [ 
          { 
           name: 'Chrome', 
           ... 
          }, 
          ... 
         ] 
        } 
    }); 
    

會如何選擇1影響動態加載的對象?選項2是創建一組屬性的最佳方式嗎?我錯過了第三個更好的選擇嗎?感謝幫助!

回答

0

選項2應該適合你。

無論Ext版本如何,JavaScript都不會讓您創建「名稱空間」對象,而無需先創建根對象等。 Ext具有名稱空間功能,可用於爲您的整體應用程序創建一個名稱空間函數。自從4.0使用Ext.application來設置你的名字空間和Ext.define來創建名字間隔的類。

我不太清楚你的意思是動態加載對象...

+0

謝謝!關於動態加載(我的部分錯誤地稱爲),我主要提到版本4中的新組件模型(即'Ext.define('org.obj',{}); ')提取「名稱空間」解析。 –

+0

您可能想閱讀本指南http://docs.sencha.com/ext-js/4-1/#!/guide/class_system – dbrin

相關問題