2015-04-05 26 views
0

我想知道構建angular.js應用程序的最佳方式。我相信所有的指令通過ajax請求下載他們各自的模板。因此,是能夠更好地圍成一個SPA的每個不同部分在一個指令作爲一個單獨的單元與它自己的模板html和控制器:如何構造angular.js應用程序

<html> 
    <head> 
    </head> 
    <body> 
     <section> 
      <directive1></directive1> 
     </section> 

     <section> 
      <directive2></directive2> 
     </section> 

     <section> 
      <directive3></directive3> 
     </section> 

    </body> 

</html> 

還是更預留用於DOM操作指令和嵌入裏面的所有控制器主要的html頁面:

<html> 
    <head> 
    </head> 
    <body ng-app="myapp"> 
     <section ng-controller="controller1"> 
      ... 
     </section> 

     <section ng-controller="controller2"> 
      ... 
     </section> 

     <section ng-controller="controller3"> 
      ... 
     </section> 

    </body> 

</html> 

我想知道每種方法的優點和缺點,在性能,最佳實踐等方面提前 感謝。

+0

問題太廣泛 – charlietfl 2015-04-05 15:16:22

回答

2

我會全心全意地推薦任何新建項目,您應該盡一切努力避免在您的應用程序中使用ng-controller

如果/當您嘗試將任何應用程序升級到AngularJS 2.0版時,這將會節省很多心痛。這與目前的版本有很大不同,其中一個變化是沒有ng-controller

已經發現,他們鼓勵開發人員採取捷徑,而不是設計模塊化鬆散耦合的組件/指令,我們最終可以實現緊密耦合的n層控制器層次結構。

我發現這是一個很好的文章與主題考慮給予角2.0

申報方向

http://teropa.info/blog/2014/10/24/how-ive-improved-my-angular-apps-by-banning-ng-controller.html

,可能很難在一個項目開始設計指令,你自動會達到ng-controller,但我認爲這是長遠來看最好的方法。

鑑於過去幾年中進行的Angular項目數量龐大,組織內將會進行許多對話,以評估他們是否能夠投入所需的努力來實現1.2-1.3,並基本上重寫應用程序以便能夠使用2。0.

1

這兩種方法幾乎相同,因爲兩者都會做同樣的工作。

  • 方法1更易於理解。
  • 方法1可以導致代碼重用性,因爲用於表示相同類型的模板的相同模板可以是 。
  • 方法1實現了模塊化結構,以更微妙的方式表示應用程序。
1

你在比較蘋果和橘子。控制器調用服務來檢索模型並將它們附加到$ scope(換句話說,它們初始化範圍)。指令是您可以在視圖中使用的可重用組件。

這兩者並不相互排斥:您可以使用帶指令的控制器,不帶指令的控制器和不帶控制器的指令。

將它們與方法進行比較是沒有意義的。

相關問題