AngularJS-模型数据聚合

AngularJS-模型数据聚合,angularjs,Angularjs,我使用的是AngularJS,我试图从JSON对象中获取最小值和最大值 我有一个调用API并返回JSON对象的服务: angular.module('modelLookupServices', ['ngResource']). factory('Year', function($resource) { return $resource('/api/years.json/', {}, { query: {method:

我使用的是AngularJS,我试图从JSON对象中获取最小值和最大值

我有一个调用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的干净代码方式,并在实现时考虑到关注点的分离。

简单的回答是:您可以将它放在最容易维护的地方

如果你需要在整个应用程序中定期获取最小/最大年份,我会把它放在你的服务中。由于服务面向可注入、可重用的功能,因此它非常适合

如果是某个本地化到应用程序某个部分的内容,我会将其放在控制器中。由于控制器基本上用于操作作用域中的数据,并且您将其放入作用域中,因此它非常适合

这真的是你的决定。但我会在可读性/可维护性方面犯错误


编辑:@RoyTruelove完全正确。。。可测试性也可能(也应该)是一个问题。

我最终将其完全从前端移动到后端。既然我已经在调用后端来检索年份列表,我还不如返回最小值/最大值。我觉得把它交给前端比让前端来做更合乎逻辑。