# AngularJS 簡介
AngularJS 是一個 **JavaScript 框架**。它可通過 <script> 標簽添加到 HTML 頁面。
AngularJS 通過 **[指令](angularjs-directives.html)** 擴展了 HTML,且通過 **[表達式](angularjs-expressions.html)** 綁定數據到 HTML。
## AngularJS 是一個 JavaScript 框架
AngularJS 是一個 JavaScript 框架。它是一個以 JavaScript 編寫的庫。
AngularJS 是以一個 JavaScript 文件形式發布的,可通過 script 標簽添加到網頁中:
```
<script src="//www.w3cschool.cc/try/angularjs/1.2.5/angular.min.js"></script>
```
> 
> 我們建議把腳本放在 <body> 元素的底部。
這會提高網頁加載速度,因為 HTML 加載不受制于腳本加載
## AngularJS 擴展了 HTML
AngularJS 通過 **ng-directives** 擴展了 HTML。
**ng-app** 指令定義一個 AngularJS 應用程序。
**ng-model** 指令把元素值(比如輸入域的值)綁定到應用程序。
**ng-bind** 指令把應用程序數據綁定到 HTML 視圖。
## AngularJS 實例
```
<!DOCTYPE html>
<html>
<body>
<div ng-app="">
? <p>在輸入框中嘗試輸入:</p>
? <p>姓名:<input type="text" ng-model="name"></p>
? <p ng-bind="name"></p>
</div>
<script src="//www.w3cschool.cc/try/angularjs/1.2.5/angular.min.js"></script>
</body>
</html>
```
實例講解:
當網頁加載完畢,AngularJS 自動開啟。
**ng-app** 指令告訴 AngularJS,<div> 元素是 AngularJS **應用程序** 的"所有者"。
**ng-model** 指令把輸入域的值綁定到應用程序變量 **name**。
**ng-bind** 指令把應用程序變量 name 綁定到某個段落的 innerHTML。
> 
> 如果您移除了 **ng-app** 指令,HTML 將直接把表達式顯示出來,不會去計算表達式的結果。
## 什么是 AngularJS?
"AngularJS 是專門為應用程序設計的 HTML。"
AngularJS 使得開發現代的單一頁面應用程序(SPAs:Single Page Applications)變得更加容易。
* AngularJS 把應用程序數據綁定到 HTML 元素。
* AngularJS 可以克隆和重復 HTML 元素。
* AngularJS 可以隱藏和顯示 HTML 元素。
* AngularJS 可以在 HTML 元素"背后"添加代碼。
* AngularJS 支持輸入驗證。
## AngularJS 指令
正如您所看到的,AngularJS 指令是以 **ng** 作為前綴的 HTML 屬性。
**ng-init** 指令初始化 AngularJS 應用程序變量。
## AngularJS 實例
```
<div ng-app="" ng-init="firstName='John'">
<p>姓名為 <span ng-bind="firstName"></span></p>
</div>
```
> 
> HTML5 允許擴展的(自制的)屬性,以 **data-** 開頭。
AngularJS 屬性以 **ng-** 開頭,但是您可以使用 **data-ng-** 來讓網頁對 HTML5 有效。
帶有有效的 HTML5:
## AngularJS 實例
```
<div data-ng-app="" data-ng-init="firstName='John'">
<p>姓名為 <span data-ng-bind="firstName"></span></p>
</div>
```
## AngularJS 表達式
AngularJS 表達式寫在雙大括號內:**{{ expression }}**。
AngularJS 表達式把數據綁定到 HTML,這與 **ng-bind** 指令有異曲同工之妙。
AngularJS 將在表達式書寫的位置"輸出"數據。
**AngularJS 表達式** 很像 **JavaScript 表達式**:它們可以包含文字、運算符和變量。
實例 {{ 5 + 5 }} 或 {{ firstName + " " + lastName }}
## AngularJS 實例
```
<!DOCTYPE html>
<html>
<body>
<div ng-app="">
? <p>我的第一個表達式: {{ 5 + 5 }}</p>
</div>
<script src="//www.w3cschool.cc/try/angularjs/1.2.5/angular.min.js"></script>
</body>
</html>
```