核心要點
如今,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加載時運行。回調函數創建一個數據表,設置一些圖表選項,實例化我們的圖表並創建圖表。
<🎜> <🎜> <div id="chart_div" style="width: 900px; height: 500px;"></div>
如果您不熟悉此API,或者需要復習,我建議您閱讀Google Charts文檔。
AngularJS
在開始使用Angular之前,您應該:
從終端導航到種子項目,然後輸入以下命令:
cd angular-seed node scripts/web-server.js
您應該看到以下消息輸出到控制台:
<code>HTTP Server running at http://localhost:8000/</code>
此時,您可以通過導航到http://localhost:8000/app/index.html查看演示頁面。
Angular使用MVC(模型-視圖-控制器)設計模式。在本教程中,我們將重點關注控制器。目前,可以將控制器視為處理頁面特定部分並使用視圖呈現數據的邏輯。一旦我們開始編寫應用程序,我們將更好地了解控制器是什麼。現在,讓我們看看Angular種子項目。它是一個Angular應用程序模板,我們將在此基礎上構建我們的應用程序。在Angular種子項目中,導航到app/js。在那裡,我們可以看到控制器、指令、應用程序、過濾器和服務。這些是我們創建應用程序時將要使用的內容。
構建應用程序
將index.html中的代碼替換為以下代碼:
<🎜> <🎜> <div id="chart_div" style="width: 900px; height: 500px;"></div>
控制器
如前所述,控制器包含處理頁面特定部分的邏輯。在之前的代碼示例中,請注意以下行:
cd angular-seed node scripts/web-server.js
此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服務器。
<!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <meta charset="utf-8"> <title>My AngularJS App</title> </head> <body> <div ng-controller="MyCtrl1">{{name}}</div> <🎜> <🎜> <🎜> <🎜> <🎜> <🎜> <🎜> </body> </html>
現在,將瀏覽器URL指向http://localhost:8000/app/index.html,應該會顯示名稱。
創建圖表
現在,讓我們繪製一些圖表。首先,在index.html中包含Ajax API。
<div ng-controller="MyCtrl1">{{name}}</div>
接下來,修改index.html中的div,如下所示。
'use strict'; /* Controllers */ angular.module('myApp.controllers', []). controller('MyCtrl1', ['$scope', function($scope) { $scope.name = 'Jay'; } ]) .controller('MyCtrl2', [ function() { } ]);
在controllers.js中加載Visualization API和linechart包。
node scripts/web-server.js
加載包後,我們需要初始化我們的Angular應用程序。
<🎜>
angular.bootstrap是一個全局API,用於手動啟動Angular應用程序。只需將Google Chart創建代碼複製並粘貼到控制器函數中,這就是我們的最終結果:
<div ng-controller="MyCtrl1" id="chartdiv"></div>
在運行代碼之前,編輯index.html並從html標籤中刪除ng-app="myApp"。 ng-app使用應用程序引導元素。但是,由於我們已經在控制器代碼中執行此操作(使用以下代碼行),因此我們可以將其從HTML中刪除。
google.load('visualization', '1', {packages:['corechart']});
重新啟動Node服務器並訪問http://localhost:8000/app/index.html。您應該會看到基於我們的虛擬數據的折線圖。
結論
在本教程的這一部分中,我們重點介紹了Angular控制器。在下一篇文章中,我們將重點介紹指令和$scope的使用。同時,本文的所有代碼都可以在GitHub上找到。
使用Google Charts API和AngularJS創建可視化應用程序的常見問題解答(FAQ)
Google Charts API提供了廣泛的自定義選項,允許您修改圖表的外觀。您可以更改顏色、字體、網格線等等。要自定義圖表,您需要修改圖表draw()方法中的options對象。例如,要更改圖表的標題,您可以使用以下代碼:
<🎜> <🎜> <div id="chart_div" style="width: 900px; height: 500px;"></div>
請記住,options對象可以包含許多屬性,允許您廣泛地自定義圖表。
Google Charts API提供了多種向圖表添加交互性的方法。最常見的方法之一是使用“select”事件,該事件在用戶選擇圖表上的項目時觸發。您可以向圖表添加一個事件偵聽器,該偵聽器偵聽“select”事件,並在觸發時執行操作。這是一個示例:
cd angular-seed node scripts/web-server.js
在此示例中,當用戶選擇圖表上的項目時,將出現一個警報框,顯示所選項目的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中鍵列值匹配的行。這是一個示例:
<!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <meta charset="utf-8"> <title>My AngularJS App</title> </head> <body> <div ng-controller="MyCtrl1">{{name}}</div> <🎜> <🎜> <🎜> <🎜> <🎜> <🎜> <🎜> </body> </html>
在此示例中,dataTable1和dataTable2在每個DataTable的第一列上連接。
Google Charts API支持各種圖表類型,包括折線圖、條形圖、餅圖、散點圖、面積圖等等。每種圖表類型在API中都由一個特定的類表示,您可以通過創建相應類的實例來創建圖表。例如,要創建折線圖,您可以使用以下代碼:
<div ng-controller="MyCtrl1">{{name}}</div>
在此示例中,將創建一個新的折線圖,並將其顯示在ID為“chart_div”的HTML元素中。
以上是使用Google Charts API和AngularJS創建可視化應用程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!