2014-04-01 85 views
0

我是angluarjs的新手,並試圖構建一個示例應用程序。何時使用模塊與控制器

本申請分爲3部分/部分:

A.)地圖

B.) 「接收到的」 - 面積

C.) 「發送」 - 面積

每個部分都有自己的佈局/視圖區域,同時不可見。

在部分B.)中,您可以通過點擊或自動加載服務器中的信息,這些信息將作爲文本在部分「B.」中顯示,在部分「A.」中顯示爲地圖標記。

此外,您可以單擊內部「A.)」部分設置一個新的標記。

在「C.)」部分,有一個發送按鈕可以從「A.」中取出新的標記,以便將其發送到服務器。

當前:所有部分(A,B,C)都是角度模塊/自己的應用程序。

但我不知道,如果這是正確的方式/最佳做法。

的其它方式可能是整個頁面的單個模塊的控制器3(A,B,C),該處理邏輯部分A,B和C.

什麼是angularjs的正確方法?

回答

0

搜索的方式來獲得一些靈感,我決定爲實現以下思考:

對於所有的自制代碼,我使用一個模塊爲整個應用程序以及所有外在的東西,捆綁外部插件和服務,我採取了不同的模塊。這意味着:對於每個「服務插件捆綁」(如谷歌API &角谷歌-地圖插件)

因此,我可以切換模塊,如果外部服務不起作用PNE模塊等

在這個問題上看我的例子,這意味着:

應用程序部分A:地圖和所有特定於地圖的事物(設置新標記,繪製圓等)都是洞察地圖模塊。如果我決定使用開放的街道地圖而不是谷歌地圖,我會插入一個新的地圖模塊

應用程序部分A和B:這是我的具有不同控制器的「主」應用程序模塊。

1

從您的描述中,我建議將它設計爲一​​個單獨的AngularJS應用程序,併爲每個視圖使用單獨的控制器。聽起來你會從使用角度服務來處理客戶端業務邏輯和緩存視圖可以使用的任何共享數據/模型中受益。在Angular中最好的做法是讓控制器保持精簡併專注於視圖設置/綁定並協調對服務的訪問。

+0

目前我啓動/引導部分B節/模塊A完全加載/準備就緒後。那麼如何處理「控制器A」(地圖)加載並準備好後「控制器B」運行?默認行爲是每個控制器在啓動模塊時都運行,對吧? –

+0

當遇到指定控制器的任何指令時,控制器將運行。我在這裏做了一些假設,但是如果你的數據都是同一個域的一部分,你可以使用角度服務封裝對數據的訪問並將服務注入到你的控制器中......你可以將每個部分/ ng-View指令及其相關控制器,並使用角度路由在視圖之間適當地進行導航。該服務將在您的控制器的實例化之間保持狀態,並且您可以將邏輯放入路由中,以確保在必要時進行正確的流程。 – terryt

+0

我現在選擇我自己的指令「何時創建新模塊與控制器」。但提示+1使用服務在控制器/模塊之間共享。謝謝。 –

相關問題