0

Angularjs を使用して再利用可能な SVG チャートを作成したいと考えており、ディレクティブ コントローラー関連の質問がいくつかあります。

最初の例では、内部状態、つまりデータの視覚化に影響を与えるフォーム要素を含むチャートをレンダリングする、次のようなマークアップを作成できるようにしたいと考えています。

<scatterChart></scatterChart>

=>

<div class="scatterChart">
 <div> [Form elements] </div> 
 <svg>
   [Data visualization]
 </svg> 
</div>

質問 1: コントローラー、ディレクティブ、モジュール
これを別のコントローラーを持つ単一のディレクティブとして構築することは理にかなっていますか? または、コントローラーをディレクティブに埋め込むか、モジュールを作成しますか?

質問 2: モデル/状態から SVG へのレンダリング
チャート コントローラーに次のような内部状態があるとします。

scope.model = {
  xAxis : "xyz",
  yAxis : "abc"
}

モデルが変更されると、チャートの再レンダリングがトリガーされます。コントローラーとディレクティブの間ですべてのチャートのユーザー制御属性を共有する DRY/適切な方法は何でしょうか? (同時に、ディレクティブはいくつかの依存/プライベート属性を持つことができる必要があります。)

質問 3: API
初期状態をチャートに渡すにはどうすればよいですか? 属性?そして、それが20パラメータの状態である場合は?

<scatterChart xAxis="abc"></scatterChart>
4

1 に答える 1

0

答え 1

他のディレクティブで同じコントローラーを再利用する場合を除き、コントローラーをディレクティブに埋め込みます。

答え 2

すべてのチャート間で共有されるユーザー制御の属性を格納するサービスを作成できます。

答え 3

多くのパラメーターがある場合は、データを保存してディレクティブとコントローラーに挿入するサービスを作成することをお勧めします。

一般的な考え方は、サービスを作成することにより、コントローラーとディレクティブからデータを分離することです。

于 2013-10-08T09:45:39.380 に答える