
- MEAN.JS 教程
- MEAN.JS - 首頁
- MEAN.JS - 概述
- MEAN.JS - 架構
- 構建Node Web應用
- MEAN.JS - MEAN專案設定
- 構建靜態路由Node Express
- MEAN.JS - 構建資料模型
- MEAN.JS - REST API
- 使用Angular的前端
- 應用中的Angular元件
- 使用Angular構建單頁應用
- 構建SPA:進階
- MEAN.JS 有用資源
- MEAN.JS - 快速指南
- MEAN.JS - 有用資源
- MEAN.JS - 討論
MEAN.JS - 應用中的Angular元件
本章節,我們將嚮應用中新增Angular元件。它是一個Web前端JavaScript框架,允許使用模型-檢視-控制器(MVC)模式建立動態的單頁應用程式。在MEAN.JS 架構章節中,您已經瞭解了AngularJS如何處理客戶端請求並從資料庫獲取結果。
瞭解AngularJS
AngularJS是一個開源的Web應用程式框架,它使用HTML作為模板語言,並擴充套件HTML的語法以清晰地表達您的應用程式元件。AngularJS提供了一些基本功能,例如資料繫結、模型、檢視、控制器、服務等。有關AngularJS的更多資訊,請參考此連結。
您可以透過在頁面中新增Angular來使頁面成為一個Angular應用程式。只需使用一個外部JavaScript檔案即可新增它,該檔案可以下載,也可以直接引用CDN版本。
假設我們已下載檔案並透過以下方式將其本地新增到頁面中:
<script src="angular.min.js"></script>
現在,我們需要告訴Angular此頁面是一個Angular應用程式。因此,我們可以透過向<html>或<body>標籤新增一個屬性ng-app來實現,如下所示:
<html ng-app> or <body ng-app>
ng-app可以新增到頁面上的任何元素,但通常將其放在<html>或<body>標籤中,以便Angular可以在頁面內的任何位置工作。
Angular應用程式作為一個模組
要使用Angular應用程式,我們需要定義一個模組。在這裡,您可以分組與應用程式相關的元件、指令、服務等。模組名稱由HTML中的ng-app屬性引用。例如,我們將Angular應用程式模組名稱命名為myApp,並可以在<html>標籤中指定,如下所示:
<html ng-app="myApp">
我們可以使用以下語句在一個外部JavaScript檔案中建立應用程式的定義:
angular.module('myApp', []); //The [] parameter specifies dependent modules in the module definition
定義控制器
AngularJS應用程式依賴於控制器來控制應用程式中的資料流。控制器是使用ng-controller指令定義的。
例如,我們將使用ng-controller指令以及您要使用的控制器的名稱將控制器附加到body。在下面的程式碼行中,我們使用“myController”作為控制器的名稱。
<body ng-controller="myController">
您可以將控制器(myController)附加到Angular模組(myApp),如下所示:
angular .module('myApp') .controller('myController', function() { // controller code here });
最好使用命名函式而不是匿名函式,以提高可讀性、可重用性和可測試性。在下面的程式碼中,我們使用新的命名函式“myController”來儲存控制器程式碼:
var myController = function() { // controller code here }; angular .module('myApp') .controller('myController', myController);
有關控制器的更多資訊,請參考此連結。
定義作用域
作用域是一個特殊的JavaScript物件,它將控制器與檢視連線起來,幷包含模型資料。在控制器中,模型資料是透過$scope物件訪問的。控制器函式採用$scope引數,該引數由Angular建立,它可以直接訪問模型。
以下程式碼片段指定如何更新控制器函式以接收$scope引數並設定預設值:
var myController = function($scope) { $scope.message = "Hello World..."; };
有關控制器的更多資訊,請參考此連結。在下一章中,我們將開始使用Angular建立單頁應用程式。