0

過去数週間でいくつかの Angular を学ぼうとしたので、特定のアプリケーション アーキテクチャを採用しました。

中間の大規模な SPA を想定して、ビューを作成し、maincontroller を適用します。

<html ng-app="app">
    <body ng-controller="appCtrl">
        <!-- All of the view goes in here -->
    </body>
</html>

ここで、アプリケーションで実行する必要があることについて考えます。これがいくつかのデータを保存して操作する必要があると仮定すると、「クラス」を構築するためのプロバイダーを作成します。

    var data = angular.module('data', []);

data.provider('$dataObject',function(){

    this.$get = function($http){

            function DataObject(){

                var field = "testvalue";
                var object = {
                    // ...
                }
            }

            DataObject.prototype.processData = function(){
               // do something
            };

        return {
            Shipment: function(){
                return new Shipment();
            }
        }
    }
});

次に、メインコントローラーでそのクラスのインスタンスを作成し、必要なすべてのデータをビューからそのオブジェクトに格納し、クラス メソッドを呼び出して処理します。

アプリケーションが別の機能を必要とする場合、たとえば、いくつかのものを選択するためのダイアログが必要な場合は、上記の手順を繰り返して、そのダイアログ用のクラスを作成します。

さて、私はそのように物事を行うことに非常に満足していますが、誰かがこの悪い習慣を検討するのではないかと思います。

4

1 に答える 1

1

モデル/データ用のサービス/プロバイダーを (データを公開するための API を使用して) 作成し、それらをコントローラーに注入するのが「Angular の方法」です。

Angular アプリを設計するときは、必要なモデルについて考え、それらのサービスを作成します。次に (または並行して) ビューについて考え、それらを設計します。通常、この時点でもカスタム ディレクティブを作成します。最後に、各ビューはコントローラーを取得します。コントローラーの仕事は、ビューが必要とするサービスからモデル/データを接着することです。(コントローラはできるだけ薄くしてください。)

于 2013-07-24T14:13:53.957 に答える