牛骨文教育服务平台(让学习变的简单)
博文笔记

AngularJS自定义Echarts标签 — 雷达图Radar

创建时间:2015-08-21 投稿人: 浏览次数:6720

1、准备文件

AngularJS的js文件:angular.js

Echarts的js文件:echarts-all.js

2、html页面

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>雷达图</title>
</head>
<!--加载AngularJS-->
<script src="js/angular/angular.js"></script>
<!--加载ECharts-->
<script src="js/echarts-2.2.7/build/dist/echarts-all.js"></script>
<script src="js/radar.js"></script>

<body ng-app="app" ng-controller="radarCtrl">
	<radar id="main" legend="legend" item="item" max="max" data="data"></radar>
</body>
</html>

3、radar.js文件

var app = angular.module("app", []);

app.controller("radarCtrl", function($scope) {
	$scope.legend = ["预算"];
	$scope.item = ["销售", "管理", "信息技术", "客服", "研发", "市场"];
	$scope.max = [55000,55000,55000,55000,55000,55000];
	$scope.data = [
		[4300, 10000, 28000, 35000, 50000, 19000]
	];
});

app.directive("radar", function() {
	return {
		scope: {
			id: "@",
			legend: "=",
			item: "=",
			max: "=",
			data: "="
		},
		restrict: "E",
		template: "<div style="height:400px"></div>",
		replace: true,
		link: function($scope, element, attrs, controller) {
			var option = {
				tooltip: {
					trigger: "axis"
				},
				legend: {
					orient: "vertical",
					x: "right",
					y: "bottom",
					data: $scope.legend
				},
				polar: [{
					indicator: function(){
						var indicator = [];
						for(var i=0;i<$scope.item.length;i++){
							var item = {
								text: $scope.item[i],
								max: $scope.max[i] //设置最大值
							};
							indicator.push(item);
						};
						return indicator;
					}()
				}],
				series: [{
					type: "radar",
					data: function(){
						var data = [];
						for(var i=0;i<$scope.legend.length;i++){
							var item = {
								name: $scope.legend[i],
								value: $scope.data[i]
							};
							data.push(item);
						}
						return data;
					}()
				}]
			};

			var myChart = echarts.init(document.getElementById($scope.id),"macarons");
			myChart.setOption(option);
		}
	};
});


效果图如下:


代码:下载


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。