2013-07-24 8 views
0

當我在過去的幾周裏嘗試學習一些Angular時,我採用了特定的應用程序體系結構。關於AngularJS中基於對象的應用程序結構的批判性看法

假設一箇中間大的SPA,我創建視圖和應用maincontroller:

<html ng-app="app"> 
    <body ng-controller="appCtrl"> 
     <!-- All of the view goes in here --> 
    </body> 
</html> 

現在,我想我的應用程序將不得不做的東西。假設這個人將不得不存儲一些數據並使用它,我會創建一個提供者來構建一個「類」。

var data = angular.module('data', []); 

data.provider('$dataObject',function(){ 

    this.$get = function($http){ 

      function DataObject(){ 

       var field = "testvalue"; 
       var object = { 
        // ... 
       } 
      } 

      DataObject.prototype.processData = function(){ 
       // do something 
      }; 

     return { 
      Shipment: function(){ 
       return new Shipment(); 
      } 
     } 
    } 
}); 

然後,我會在我的maincontroller創建類的實例,存儲所有必要的數據從觀點到該對象,通過調用類的方法處理它。

如果應用程序需要其他功能,例如選擇一些東西的對話框,我會重複上述步驟併爲該對話框創建一個類。

現在,雖然我很樂意以這種方式做事,但我仍然懷疑是否有人會考慮這種不好的做法,如果是這樣,爲什麼會這樣,我能做些什麼更好?

回答

1

爲您的模型/數據創建服務/提供者(使用API​​來公開數據),然後將它們注入到控制器中是「有角度的方式」。

當我設計一個角度應用程序時,我想到了我需要的模型併爲它們創建服務。然後我(或平行)考慮意見並設計這些意見。我通常也在這一點上創建自定義指令。最後,每個視圖都有一個控制器,它的任務是粘合視圖所需服務的模型/數據。 (儘可能使控制器儘可能薄。)

相關問題