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

}

min / max関数を実装するのはかなり簡単ですが、私の質問はどこでそれを行うかです。モデルを渡すことができるサービスとしてそれを行う必要があり、最小/最大値を持つオブジェクトを返す必要がありますか?それとも、効用関数としてコントローラーに入れる必要がありますか?それとも完全に別の場所にあるべきですか?

私はAngularJSのクリーンなコードの方法に従い、関心の分離を念頭に置いて実装しようとしています。

4

1 に答える 1

2

簡単に言うと、メンテナンスが最も簡単な場所ならどこにでも配置できます。

最小/最大年を取得することが、アプリ全体で定期的に行う必要がある場合は、サービスに入れます。サービスは注入可能で再利用可能な機能を対象としているため、適合します。

アプリの一部にローカライズされたものであれば、コントローラーに入れます。コントローラーは基本的にスコープ内のデータを操作するためのものであり、スコープ内に配置しているため、適合します。

それは本当にあなたの電話です。しかし、読みやすさ/保守性の面でエラーが発生します。

編集:@RoyTrueloveはまさに正しいです...テスト容易性も懸念される可能性があります(そしてそうあるべきです)。

于 2012-11-07T21:54:05.050 に答える