快速上手

首先舉了個簡單的例子帶領各位快速上手

先到官網選擇 Download AngularJS 1

為了讓各位可以快速呈現結果就已 JS Bin 網站做示範

<html> 標籤上加入 ng-app 屬性

這就是宣告式語法 (Directive),用來宣告整份 html 都屬於 AngularJS 控管。

Angular 表達式 (Angular Expressions)

長得像 JavaScript 語法但又不全是 JavaScript,語法相近且會用 {{}} 包起來

試試看以下的語法

<p>{{1000}}</p>
<p>{{1000+2000}}</p>
<p>{{1000*2}}</p>
<p>{{'Hello World'}}</p>

在 Output 欄中可以看到結果,目前為止都是跟 JavaScript 一樣輸出數字跟字串而已。

Angular 的 Filter 特性

可以修飾或過濾 Angular 表達式輸出的內容,先示範幾個簡單的例子。

<p>{{1000 | number}}</p>
<p>{{1000+2000 | number:2}}</p>
<p>{{1000*2 | currency}}</p>
<p>{{'Hello World' | uppercase}}</p>

資料繫結 Data-Binding

MVC設計模式中,在 View 與 Controller 之間都是透過 Model 做資料傳遞,不論你是在 View 透過表單元素修改還是在 Controller 端直接修該 Model 內容,兩邊都會即時發生變化。因為 AngularJS 會監控 Model 物件的任何變化,並隨時反映到 View 上。

雙向繫結示意圖

image source: Angular JS

請把代碼改成以下例子體驗一下 AngularJS 資料繫結的神奇之處。

<label>
  數量:
  <input type="number" ng-model="quantity" ng-init="quantity = 1">
</label>
<br>
<label>
  價錢:
  <input type="number" ng-model="price" ng-init="price = 1000">
</label>
<br>
<h3>{{'總價:' + quantity*price }}</h3>

在例子中有 2 個 input 欄位宣告了 ng-model,屬性值代表的 Model 變數名稱。如果你試圖在 input 標籤設定 value 屬性與值,其屬性值並不會顯示在欄位中,因為 input 已經受到 Angular 控制,所以欄位中的 value 一定會跟 Model 繫結。quanity 跟 price 這兩個 Model 都沒有預設值,所以透過 ng-init 來指定 Model 的預設值。

JS Bin

results matching ""

    No results matching ""