2017-01-17 10 views
0

私はMVCパターンでコントローラのコンセプトを考えていましたが、エンティティごとにコントローラを作成する必要があります。 (例えばangularJSはシングルトンの概念に従っているので)angularJSを使うか、例えば "products"に関連するすべてのビューのコントローラを持つのは正しいですか?ビューまたはエンティティごとのAngularJSコントローラ

私は状況をあげる:

のは、我々は購入と呼ばれるモジュールを持っており、そのモジュールの下で、我々は3つのサブモジュール持っているとしましょう:製品、サプライヤー、&株式移動し、各サブモジュールは、CRUDのビューを持っているがオペレーションでは、製品の下に以下のものがあるとしましょう:list-products.view.html、create-product.view.html、edit-product.view.html;コントローラーのための最良のアプローチは何でしょうか? 1つのビューにつき1つのコントローラ、またはすべてのビューのコントローラ?あなたの助け

答えて

1

ため

おかげで私は関係なく、常にそれがエンティティごとに複数のコントローラを持つか、その結果かどうかの、ビューごとのコントローラのために行きます。この理由は簡単です。ビューが誤動作しているときは、何が問題になったのかを把握するために、コードの最小の部分集合を調べたいと思う。

コントローラの仕事は、ビューからのコマンドに応答し、モデルの変更をビューに伝えることです。したがって、本質的にコントローラはエンティティを管理することは想定されていませんが、ビューを管理するために使用されます。

このアプローチは、問題のない98%のケースで役に立ちました。明らかに、ソフトウェアには絶対的な答えはないので、エンティティごとのコントローラがよりシームレスに適合するシナリオがいくつかあるかもしれません。しかし、私にとっては、実用的で哲学的な観点から見ると、コントローラはビ​​ューごとに意味があります。

0

私は通常、各ビューに対して1つのコントローラとルートを使用しますが、これが最も使用される方法です。特にアプリケーションが成長し始めると、アプリケーションを論理的に構造化するのに役立ちます。

ビューごとに複数のコントローラを使用して、ビューのさまざまな領域を管理する場合があります。このようなシナリオでは、各コントローラはページ全体の断片を管理します。

関連する問題