我是新的Angular和Flot,但有经验的Jquery和Javascript。我有点困惑,如何去绑定一个Flot图表到Angular数据模型,因为Flot是一个JQuery插件。我已经搜索过,但没有能够找到一个例子。
我也很乐意使用Highcharts,Google图表或任何其他图表解决方案。
由于图表涉及重DOM操作,指令是要走的路。
数据可以保存在控制器中
App.controller('Ctrl',function($scope) { $scope.data = [[[0,1],[1,5],[2,2]]]; });
您可以创建自定义HTML tag1,指定要从中获取数据的模型
<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(); } }; });
– * –
此外,您可以监视图表基础数据中的更改并重新绘制,因此您可以通过控制器的$ 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在指令中的用法来实现我们想要的。