Как создать функцию для рендеринга Google Charts? - PullRequest
0 голосов
/ 21 ноября 2019

У меня есть 6 Google Charts

enter image description here

Я пытался создать функцию и вызывал ее 6 раз.

<script type="text/javascript">

    google.charts.load("current", {packages:["corechart"]});

    google.charts.setOnLoadCallback(drawChart());

    function drawChart(type,value) {
        var data = google.visualization.arrayToDataTable([
            ['Effort', 'Ammout given'],
            [type,     value],
            ['',     (100-value)]
            ]);

        var options = {
            pieHole: 0.9,
            legend: {position: 'none'},
            pieSliceText: { color: '#EC7108' },
            slices: {
                0: { color: '#EC7108' },
                1: { color: '#E5E5E5' }
            }


        };

        var chart = new google.visualization.PieChart(document.getElementById(type));
        chart.draw(data, options);

    }

    drawChart('html',90);
    drawChart('css',60);
    drawChart('js',70);
    drawChart('jquery',80);
    drawChart('react',60);
    drawChart('node',70);

</script>

Я продолжал получать ошибки

enter image description here

Это то, что у меня сейчас, создать функцию 6 раз ??‍♂️, но это работает.

https://jsfiddle.net/bheng/0qcjn7zy/6/

Как создать одну функцию и вызвать ее 6 раз?

1 Ответ

2 голосов
/ 21 ноября 2019

Пожалуйста, убедитесь, что это работает для меня.

Вам нужно создать один метод внутри метода и добавить все методы, которые вы хотите отобразить диаграмму.

Код

<html>
<head>
	<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
	<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">


	<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
	<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>

	<style type="text/css">
		.col {
			display: inline-block;
		}
	</style>


</head>
<body>


	<div class="container">

		<h1>Google Charts</h1>


		<div class="row">

			<div class="col">
				<div id="html"></div>
			</div>
			<div class="col">
				<div id="css"></div>
			</div>
			<div class="col">
				<div id="js"></div>
			</div>
			<div class="col">
				<div id="jquery"></div>
			</div>
			<div class="col">
				<div id="react"></div>
			</div>
			<div class="col">
				<div id="node"></div>
			</div>
		</div>
	</div>
	
	<script type="text/javascript">

    google.charts.load("current", {packages:["corechart"]});
	function allChart()
	{
		drawChart('html',90);
		drawChart('css',60);
		drawChart('js',70);
		drawChart('jquery',80);
		drawChart('react',60);
		drawChart('node',70);
	}
	
    google.charts.setOnLoadCallback(allChart);

    function drawChart(type,value) {
        try	
		{
			var data = google.visualization.arrayToDataTable([
            ['Effort', 'Ammout given'],
            [type,     value],
            ['',     (100-value)]
            ]);

        var options = {
            pieHole: 0.9,
            legend: {position: 'none'},
            pieSliceText: { color: '#EC7108' },
            slices: {
                0: { color: '#EC7108' },
                1: { color: '#E5E5E5' }
            }


        };

        var chart = new google.visualization.PieChart(document.getElementById(type));
        chart.draw(data, options);
		}
		catch(e)
		{			
			console.log("Error "+e.message);
		}
    }   

</script>
</body>
</html>

Проверьте здесь также код скрипты Нажмите меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...