[解決済み] FlotとAngularJSを連携させるには?
2022-02-17 07:42:04
質問
私はAngularとFlotは初めてですが、JqueryとJavascriptは経験済みです。FlotはJQueryのプラグインなので、FlotのチャートをAngularのデータモデルにバインドする方法について、少し混乱しています。FlotはJQueryのプラグインなので、FlotのチャートをAngularのデータモデルにバインドする方法について少し混乱しています。
また、highchartsやgoogle-charts、その他のチャート作成ソリューションが使えると嬉しいです。
どのように解決するのですか?
チャート作成には重いDOM操作が伴うので、ディレクティブが有効です。
データをControllerに保持することができる
App.controller('Ctrl', function($scope) {
$scope.data = [[[0, 1], [1, 5], [2, 2]]];
});
そして、カスタムHTMLタグを作成することができます 1 データを取得したいモデルを指定する
<chart ng-model='data'></chart>
ディレクティブでコンパイルすることができます。
App.directive('chart', function() {
return {
restrict: 'E',
link: function(scope, elem, attrs) {
var data = scope[attrs.ngModel];
$.plot(elem, data, {});
elem.show();
}
};
});
サンプルはこちら .
このプロセスは、DOMを変更するほとんどのプラグインで同様です。
-*-
また、チャートの基となるデータの変化を監視して再描画することもできますので、このようにコントローラから$httpサービスを通じてデータを取得し、自動的にビューを更新することも可能です。これは、ディレクティブ定義オブジェクトのリンク関数を修正することで実現できます。
var chart = null,
opts = { };
scope.$watch(attrs.ngModel, function(v){
if(!chart){
chart = $.plot(elem, v , opts);
elem.show();
}else{
chart.setData(v);
chart.setupGrid();
chart.draw();
}
});
ディレクティブの中で、FlotのAPIを使用していることに注目してください。
1 属性も可能です。
関連
-
[解決済み] FlotとAngularJSを連携させるには?
-
[解決済み] Google Chart API エラー "指定された軸のすべてのシリーズは、同じデータ型でなければなりません" 。
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み] chartjsで開始値を "0 "に設定するには?
-
[解決済み] Chart.jsでは、チャートのタイトル、X軸、Y軸の名前を設定する?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン