2012-11-07 66 views
0

我正在使用AngularJS,我試圖從JSON對象中獲取最小值和最大值。AngularJS - 模型數據聚合

我有調用API,並返回JSON對象服務:

angular.module('modelLookupServices', ['ngResource']). 
    factory('Year', function($resource) { 
     return $resource('/api/years.json/', {}, 
      { 
       query: {method:'GET', isArray:true} 
      } 
     ); 
    }); 

而在我的控制,我調用這個服務,並使用它的不同的東西:

function BrowseCtrl($scope, Year) { 

    $scope.years = Year.query(); 

    // I want to get the minimum and maximum years out of my model 

} 

這是實現min/max函數相當簡單,但我的問題是在哪裏做?我應該將它作爲服務來傳遞給模型,它應該返回一個帶有最小/最大值的對象?或者我應該把它作爲一個效用函數放在控制器中?還是應該在一個完全不同的地方?

我正在嘗試遵循AngularJS清潔代碼的方式,並且在腦海中分離關注的實現。

回答

2

簡短的回答:你可以把它放在最容易維護的地方。

如果獲取最小/最大年份是您需要在整個應用程序中定期執行的事情,那麼我會將它放入您的服務中。由於服務面向可注入,可重用的功能,因此它很合適。

如果它是本地化的應用程序的一部分,我會把它放在控制器中。由於控制器基本上用於處理範圍中的數據,並且將其放入範圍中,所以它適合。

這真的是你的電話。但是我會在可讀性/可維護性方面出錯。

編輯:@RoyTruelove是完全正確的......可測試性可以(也應該)也是一個問題。

+2

和可測性! –

+0

我最終完全將它從前端移到後端。由於我已經調用後端檢索年份列表,所以我不妨返回最小/最大值。把它交給前端,而不是讓前端去做,這聽起來更合乎邏輯。 – abstractpaper