核心要点
如今,JavaScript无处不在。许多有用的JavaScript框架,如Ember.js、Backbone.js等,正在改变Web的面貌。最流行的框架之一是Google开发的AngularJS。本文是三篇系列文章中的第一篇,将教你如何使用AngularJS构建可视化应用程序。示例应用程序将使用Google Charts API可视化数据。我们将使用Angular令人赞叹的双向绑定功能之一,使我们的图表根据数据和用户输入动态变化。在开始之前,让我们首先了解如何使用Google Charts API。对于此应用程序,我们将坚持使用一些基本图表,例如折线图、饼图等。
Google Charts
直接从Google Charts文档中,以下示例快速回顾了如何使用Google Charts API。第一个脚本加载AJAX API。在第二个脚本中,第一行加载Visualization API和linechart包。第二行设置一个回调函数,在Google Visualization API加载时运行。回调函数创建一个数据表,设置一些图表选项,实例化我们的图表并创建图表。
<code class="language-javascript"> <div id="chart_div" style="width: 900px; height: 500px;"></div></code>
如果您不熟悉此API,或者需要复习,我建议您阅读Google Charts文档。
AngularJS
在开始使用Angular之前,您应该:
从终端导航到种子项目,然后输入以下命令:
<code class="language-bash">cd angular-seed node scripts/web-server.js</code>
您应该看到以下消息输出到控制台:
<code>HTTP Server running at http://localhost:8000/</code>
此时,您可以通过导航到http://localhost:8000/app/index.html查看演示页面。
Angular使用MVC(模型-视图-控制器)设计模式。在本教程中,我们将重点关注控制器。目前,可以将控制器视为处理页面特定部分并使用视图呈现数据的逻辑。一旦我们开始编写应用程序,我们将更好地了解控制器是什么。现在,让我们看看Angular种子项目。它是一个Angular应用程序模板,我们将在此基础上构建我们的应用程序。在Angular种子项目中,导航到app/js。在那里,我们可以看到控制器、指令、应用程序、过滤器和服务。这些是我们创建应用程序时将要使用的内容。
构建应用程序
将index.html中的代码替换为以下代码:
<code class="language-javascript"> <div id="chart_div" style="width: 900px; height: 500px;"></div></code>
控制器
如前所述,控制器包含处理页面特定部分的逻辑。在之前的代码示例中,请注意以下行:
<code class="language-bash">cd angular-seed node scripts/web-server.js</code>
此div具有一个ng-controller属性,其值为MyCtrl1。MyCtrl1是在文件app/js/controllers.js中找到的控制器函数的名称。ng-controller属性称为指令。Angular指令用于增强HTML,ng-controller指令用于设置页面的特定部分的控制器。{{name}}是用于将数据从控制器传递到视图的变量。现在,问题是如何在MyCtrl1控制器内访问变量name。这就是$scope发挥作用的地方。$scope是一个对象,充当控制器和视图之间的通信机制。检查下面修改后的controllers.js代码:
<code>HTTP Server running at http://localhost:8000/</code>
在之前的代码中,我们正在传递$scope作为参数并设置变量name。现在,只需使用以下命令重新启动Node.js服务器。
<code class="language-html"><!DOCTYPE html> <meta charset="utf-8"> <title>My AngularJS App</title> <div ng-controller="MyCtrl1">{{name}}</div> </code>
现在,将浏览器URL指向http://localhost:8000/app/index.html,应该会显示名称。
创建图表
现在,让我们绘制一些图表。首先,在index.html中包含Ajax API。
<code class="language-html"><div ng-controller="MyCtrl1">{{name}}</div></code>
接下来,修改index.html中的div,如下所示。
<code class="language-javascript">'use strict'; /* Controllers */ angular.module('myApp.controllers', []). controller('MyCtrl1', ['$scope', function($scope) { $scope.name = 'Jay'; } ]) .controller('MyCtrl2', [ function() { } ]);</code>
在controllers.js中加载Visualization API和linechart包。
<code class="language-bash">node scripts/web-server.js</code>
加载包后,我们需要初始化我们的Angular应用程序。
<code class="language-html"></code>
angular.bootstrap是一个全局API,用于手动启动Angular应用程序。只需将Google Chart创建代码复制并粘贴到控制器函数中,这就是我们的最终结果:
<code class="language-html"><div ng-controller="MyCtrl1" id="chartdiv"></div></code>
在运行代码之前,编辑index.html并从html标签中删除ng-app="myApp"。ng-app使用应用程序引导元素。但是,由于我们已经在控制器代码中执行此操作(使用以下代码行),因此我们可以将其从HTML中删除。
<code class="language-javascript">google.load('visualization', '1', {packages:['corechart']});</code>
重新启动Node服务器并访问http://localhost:8000/app/index.html。您应该会看到基于我们的虚拟数据的折线图。
结论
在本教程的这一部分中,我们重点介绍了Angular控制器。在下一篇文章中,我们将重点介绍指令和$scope的使用。同时,本文的所有代码都可以在GitHub上找到。
使用Google Charts API和AngularJS创建可视化应用程序的常见问题解答(FAQ)
Google Charts API提供了广泛的自定义选项,允许您修改图表的外观。您可以更改颜色、字体、网格线等等。要自定义图表,您需要修改图表draw()方法中的options对象。例如,要更改图表的标题,您可以使用以下代码:
<code class="language-javascript"> <div id="chart_div" style="width: 900px; height: 500px;"></div></code>
请记住,options对象可以包含许多属性,允许您广泛地自定义图表。
Google Charts API提供了多种向图表添加交互性的方法。最常见的方法之一是使用“select”事件,该事件在用户选择图表上的项目时触发。您可以向图表添加一个事件侦听器,该侦听器侦听“select”事件,并在触发时执行操作。这是一个示例:
<code class="language-bash">cd angular-seed node scripts/web-server.js</code>
在此示例中,当用户选择图表上的项目时,将出现一个警报框,显示所选项目的value。
要将Google Charts与AngularJS一起使用,您可以使用angular-google-charts包。此包提供了一组AngularJS指令,使您可以轻松地将Google Charts集成到您的AngularJS应用程序中。要安装该包,您可以使用以下命令:
<code>HTTP Server running at http://localhost:8000/</code>
安装该包后,您可以使用该包提供的指令来创建和自定义图表。
可以使用google.visualization.data.join()方法在Google Charts中连接多个DataTable。此方法将三个DataTable作为参数:第一个DataTable、第二个DataTable以及每个DataTable的键列。该方法返回一个新的DataTable,其中包含两个DataTable中键列值匹配的行。这是一个示例:
<code class="language-html"><!DOCTYPE html> <meta charset="utf-8"> <title>My AngularJS App</title> <div ng-controller="MyCtrl1">{{name}}</div> </code>
在此示例中,dataTable1和dataTable2在每个DataTable的第一列上连接。
Google Charts API支持各种图表类型,包括折线图、条形图、饼图、散点图、面积图等等。每种图表类型在API中都由一个特定的类表示,您可以通过创建相应类的实例来创建图表。例如,要创建折线图,您可以使用以下代码:
<code class="language-html"><div ng-controller="MyCtrl1">{{name}}</div></code>
在此示例中,将创建一个新的折线图,并将其显示在ID为“chart_div”的HTML元素中。
以上是使用Google Charts API和AngularJS创建可视化应用程序的详细内容。更多信息请关注PHP中文网其他相关文章!