我在Javascript編程已經有一段延長的命名空間。最近我做了一個相當龐大的jQuery項目和這美妙的文章中描述的應用模塊模式:http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth如何使用EmberJS
這一切都很好,很正常,並且代碼看起來光滑和管理的,但我覺得還可以更好。我已經花一天時間尋找一些JavaScript框架,主要是那些:
- 有無UI綁定支持
- 有一個模板系統
- 可以用jQuery工作
- 幫我安排我的代碼在類似的方式,我有我整個框架跌跌撞撞像AngularJS,KnockOutJS,SpineJS,JavascriptMVC,等等。一個真正貼出來的模塊模式
一樣 - 並稱贊相當 - 爲EmberJS。
我決定給它一個鏡頭,但它並不容易。 EmberJS教程的可用性非常有限。經過很長時間的努力,我設法讓一些東西運行,我喜歡EmberJS做的事情!只有一件事我無法弄清楚 - 這也是我的問題:如何擴展Ember命名空間(使用Ember.Application.create製作)?
澄清:我的項目的舊版本有一個核心命名空間和一個Util命名空間。兩者都包含其他所有類別可以使用的各自的功能。我如何在初始命名空間的頂部使用帶有函數的Core-和Util-命名空間?
難道我只是做:
MyNamespace = Ember.Application.create();
MyNamespace.Core = Ember.Application.create();
MyNamespace.Util = Ember.Application.create();
還是別的什麼?
首先,感謝您的回覆迅速,非常詳細。其次,我並不介意非嵌套命名空間,我僅僅是尋找正確的函數調用來創建一個名爲Ember.Namespace.Create的命名空間對象!如果有的話,我可以使用我的模塊模式方法來使Ember應用程序的名稱空間(無論嵌套或不嵌套),但這只是骯髒。 – 2012-04-22 20:54:06
剛試過之後,我發現嵌套命名空間實際上可以工作。由於受歡迎的需求,它可能在最近的版本中發生了變化? – 2012-04-23 09:02:08