0

我正在使用 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

}

实现最小/最大功能相当简单,但我的问题是在哪里做?我是否应该将其作为可以将模型传递给的服务,并且它应该返回具有最小/最大值的对象?或者我应该把它作为一个实用功能放在控制器中?还是应该在完全不同的地方?

我正在尝试遵循 AngularJS 的干净代码方式,并在实现时考虑到关注点分离。

4

1 回答 1

2

简短的回答:你可以把它放在你最容易维护的地方。

如果获得最小/最大年份是您需要在整个应用程序中定期执行的操作,我会将其用于您的服务。由于服务面向可注入、可重用的功能,因此它很合适。

如果它是本地化到应用程序的一部分的东西,我会把它放在控制器中。由于控制器基本上用于操作范围内的数据,并且您将其放入范围内,因此它很合适。

这真的是你的电话。但我会在可读性/可维护性方面出错。

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

于 2012-11-07T21:54:05.050 回答