AngularJS-模型数据聚合
我使用的是AngularJS,我试图从JSON对象中获取最小值和最大值 我有一个调用API并返回JSON对象的服务:AngularJS-模型数据聚合,angularjs,Angularjs,我使用的是AngularJS,我试图从JSON对象中获取最小值和最大值 我有一个调用API并返回JSON对象的服务: angular.module('modelLookupServices', ['ngResource']). factory('Year', function($resource) { return $resource('/api/years.json/', {}, { query: {method:
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完全正确。。。可测试性也可能(也应该)是一个问题。我最终将其完全从前端移动到后端。既然我已经在调用后端来检索年份列表,我还不如返回最小值/最大值。我觉得把它交给前端比让前端来做更合乎逻辑。