遵循Patterns For Large-Scale JavaScript Application Architecture和Nicholas Zakas: Scalable JavaScript Application Architecture的想法,我開始使用這種架構實施我的大學許可項目。模塊沙盒核心Javascript模式中的深層分離
我遇到了不清楚應該如何繼續的情況。爲了說明這個場景,我將嘗試給出一個堅實的例子:
我有兩個模塊通過CORE啓動,它們是合法的模塊,每個模塊都可以獲得一個沙箱實例。一個模塊顯示管理區域的儀表板主要內容,另一個顯示管理區域的用戶配置文件主要內容。
兩個模塊都使用沙箱從服務器通過Ajax獲取的內容。這是不清楚的東西彈出的地方。兩個模塊都有一個小但明顯的共同點。一個小型的用戶統計分區,顯示一些關於當前登錄用戶的數據。
此設計模式規定模塊不應具有除Sandbox之外的任何其他依賴項。但是,我很清楚,用戶統計迷你模塊是一個獨立組件,由儀表板和用戶配置文件大模塊使用。
我的問題是,我將如何公開用戶統計迷你模塊到我的儀表板和配置文件大模塊?
所以我應該看到迷你模塊作爲獨立模塊。還需要澄清的是Dom內容的渲染。儀表板和用戶配置文件具有不同的HTML模板,並且用戶統計信息在大模塊中的不同位置呈現。 : - ? – 2012-03-07 08:40:20
那麼,你可能會緊密地耦合模塊,創建'Core.getModule'函數。無論如何,因爲你正在渲染模板,所以你需要一些方法來將部分模板渲染委託給另一個模塊/函數。這也可以通過事件來完成。 – kirilloid 2012-03-07 09:07:58
Core.getModule是我想到的第一個想法...我的沙盒使用dom目標作爲參數之一進行實例化,使得附加操作僅在目標DOM節點內發生。我找到了我的答案! :)我可以使用getModule並將迷你模塊的目標設置爲inMemory創建的目標,當將模塊添加到模板時,它們將被大模塊使用! – 2012-03-07 09:16:53