2011-08-24 115 views
5

我們在旗艦應用程序中使用了ExtJS 3.x。我們的應用程序的管理區域分爲我們提供的不同模塊。每個模塊以及後續模塊的不同CRUD操作的每個頁面都有自己的.js文件來處理功能。ExtJS是否有標準設計模式

當我們開始時,我們只是把所有的代碼都投入Ext.onReady(),而不是真的擔心全局命名空間(嘿...我們從來沒有真正把自己想象成javascript開發者)。在得到ExtJS之後,我轉向使用單例模式並像Ext.onReady()那樣調用init方法。

var newModule = { 
    propertyOne: 'asfd', 
    propertyTwo: 'asdf', 
    init: function() { 
     // set up 
    } 
}; 

Ext.onReady(function() { 
    newModule.init(); 
}); 

這是一個正確的使用JavaScript Singleton模式以及是否有適合ExtJS的比單身好,好比說也許模塊模式的任何模式?

我一直在使用this guide作爲學習Javascript中設計模式的起點。

+0

如果你有足夠的資源,你可以升級到extjs 4和使用他們強大的MVC應用程序來設計你的應用程序,而不用擔心命名空間。 –

+0

不幸的是,現在升級是不可能的。我們計劃在我們達到我們軟件的穩定版本時立即進行升級。我迫不及待地想要使用MVC模式和新的Sass主題系統。 –

+0

關於在Ext JS 3.x中使用_a_模塊設計模式的其他細節可以在這裏找到:[ExtJS(JavaScript)模塊設計模式最佳實踐](http://stackoverflow.com/q/9104387/320399) – blong

回答

2

我們最終決定升級到ExtJS的,似乎有了新的MVC架構來設計你的ExtJS的軟件的最佳方法是使用Ext.application()

你可以閱讀一下here

1

您可以看看here例如創建自己的模塊,文件Module.js。我們將這種模式用於我們自己的應用程序,並沒有問題。

Ext.app.Module = function(config){ 
    Ext.apply(this, config); 
    Ext.app.Module.superclass.constructor.call(this); 
    this.init(); 
} 

Ext.extend(Ext.app.Module, Ext.util.Observable, { 
    init : Ext.emptyFn 
});