2016-10-17 4 views
0

私はangularjs指令とコントローラについて、より深く理解しています。状況はこれです、管理人がそれらを管理できる管理パネルのアプリの中に>私は彼らのタイプ - >警察官、医学、弁護士などの複数の人々を持っています。 1つのセクションで、管理者はそれらを作成、編集、削除することができます。現在のバージョンのコントローラはほとんどの作業を行います:UI(適切なフォームの表示、他のフォームの非表示...)、ロジック(各人物タイプのメソッドの削除、作成、更新)私が理解しているように、コントローラは複数のことを行うので(1つの責任はありません)、これは良くありません。さらに、コントローラーは値をスコープにのみバインドする必要があります。AngularJsコントローラとディレクティブの目的は、正しい方法ですか?

しかし、私はすべての人を(コントローラの中で)引っ張って、それをすべて管理するいくつかのマスターディレクティブに渡すだけでいいのですか?あるいは、彼らは責任を分けるディレクティブの中のより多くのディレクティブであるべきですか?

もしそうなら、コントローラーは指令/指令と同じサービスを使用する必要があります。バックエンドから人を引き出すためのコントローラ)とディレクティブ/ディレクティブ(作成/更新/削除用)はこのDRYですか?コードなし

答えて

1

それは正確な答えを出すのは難しいですが、角度での作業の一般的な考え方はこれです:

  • コントローラー:コントローラーは、すべての変更に合わせて最新の見解を維持する責任があることあなたのアプリ全体で起こっている。つまり、ではなくにビジネスロジックが含まれている必要がありますが、このロジックは代わりに小さなサービスに分割する必要があります。それぞれがあなたのアプリのロジックのさまざまな部分を扱います。

  • サービス:上記のように、サービスにはビジネスロジックが含まれている必要があります。重い計算や操作などをサービスに入れなければならないことを意味します。サービスはシングルトンなので、このサービスをどこにでも簡単に挿入して、その中のロジックを再利用することができます。

  • ディレクティブ:コントローラーと同様に、ディレクティブにはビジネスロジックを含めるべきではありません。ディレクティブは、再利用可能な機能を作成するだけでなく、直接のDOM変更を処理する場所を提供します。 DOMの変更は、ディレクティブ内からではなく、ディレクティブ内で行われるべきです。

この答えるために:

をもしそうなら、コントローラは指令/ディレクティブと同じサービスを使用する必要があります。バックエンドから人を引き出すためのコントローラ)とディレクティブ/ディレクティブ(作成/更新/削除用)はこのDRYですか?

コントローラーにデータがバインドされている場合は、CRUD操作を処理するための指示が必ずしも必要ではありません。データはコントローラにバインドされているため、簡単にテンプレートを作成して、ng-repeat,ng-ifなどを使用して自動的にデータ変更に反応します。

関連する問題