3

私は AngularJS を学ぼうとしていますが、アーキテクチャに関する質問があると思います。

アプリケーションの開発を開始したい場合、たとえば YouTube のように、ページを「リージョン」(マリオネットなど) で整理するにはどうすればよいですか? つまり、トップ ナビゲーション バー、検索ボックス、サイド メニュー、メイン ビデオ、コメントなどです。

それらの領域をディレクティブでラップする必要がありますか?

<div top-navbar></div>
<div main-video="link_to_video"></div>
等...

それともコントローラー?
<div ng-controller="top-navbar"></div>
等...

または何もありません?app-controllerたとえば、すべてを下に投げてください。

私も見ましng-includeたが、ここで使用する必要があるかどうかはわかりません。とにかく、組織についての質問です。

4

2 に答える 2

4

これには間違いなくディレクティブは必要ありませんが、各部分の複雑さによっては、各ブロックを独自のディレクティブ内に配置することでおそらく利益が得られることが後でわかる場合があります。

AngularJS は初めてなので、各ブロックを独自のコントローラーに関連付けることから始めることをお勧めします。ブロック間の通信が必要になった場合は、継承、共有サービス、またはイベント ブロードキャストを利用できます。その過程で、ディレクティブ ロジックが必要なブロックを徐々に見つけていきます。

ng-include を使用して各ブロックのビューをロードしても問題ありません。そうしないと (ディレクティブを使用していない限り)、メイン ビューはすぐに非常に重くなり、操作が難しくなります。

これらのビュー/リージョンがどのようにレイアウトされるかをよりよく理解するために、既存のシードプロジェクトのいくつかを確認することもできます。

  1. Angular アプリ
  2. ngボイラープレート
于 2013-03-29T08:51:29.520 に答える
1

それらが「ほぼ独立した GUI 領域」である場合は、別のモジュールを使用する方がよいと思います (これは、テストとデバッグに役立ちます)。

それらが互いに関連している場合、異なるコントローラーを使用することが最善の解決策になると思います

于 2013-03-29T08:47:04.207 に答える