近幾年 Javascript 火速的串紅起來,每個網站使用 Javascript 的比例也越來越高,而也發展出許多套件或是框架,例如:jQuery、coffeeScript、ExtJS、KnockoutJS … 等,各有各的特色,而 AngularJS是屬於一種 MVC 框架,對於開發ASP.NET MVC 來說是最適合不過。而 AngularJS 的優點為宣告式語法 (Directives)、雙向資料繫結 (Two Way Data-Binding)、相依性注入 (Dependency Injection) 以及關注點分離等特性。
AngularJS是一款開源 JavaScript函式庫,由Google維護,用來協助單一頁面應用程式運行的。它的目標是透過MVC模式 (MVC) 功能增強基於瀏覽器的應用,使開發和測試變得更加容易。
函式庫讀取包含附加自定義(標籤屬性)的HTML, 遵從這些自定義屬性中的指令,並將頁面中的輸入或輸出與由JavaScript變量表示的模型綁定起來。這些JavaScript變量的值可以手工設置,或者從靜態或動態JSON資源中獲取。
程式的結構上,當要必須載入AngularJS的Lib,到AngularJS.org上下載Lib。然後載入的方式跟一般的js方法一樣。
在 AngularJS 中如果要設置變數的話,會將值利用其表示格式 {{ 與 }} 包起來,例如:
{{ Hello World }}
在 JS Bin 的 <body> 區塊內輸入:
{{1}}
<br>
{{1 + 1}}
<br>
{{ 3 * 1 }}
<br>
{{'hello world'}}
<br>
{{'hi' + ' My World'}}
<html ng-app>
<script type="text/javascript" src="~/Scripts/angular.min.js"></script>
</html>
在 AngularJS 中秉持著 MVC 的設計模式,所有在 Controller 和 View 之間都是透過 Model 定義的資料做資料傳遞,而簡單來說雙向資料繫結就是不管我們今天是在 Controller 或是 View 修改了 Model 的內容,兩邊都會即時且同時發生變化,並馬上反映到 View 上。
在下列範例中的 select 利用 ng-model 屬性宣告成 Model,並且利用 ng-init 來設定 Model 的預設值,要在 <option> 加上 selected="selected" 的屬性來改變其預設值,會發現並不會正確的選取,這是因為目前這個 select 物件已經受到 Angular 所控制,等同於被他綁架的意思 ...,而透過 Model 的繫結則可馬上反應到畫面上。
<select ng-model="week" ng-init="week = '一'">
<option>一</option>
<option>二</option>
<option>三</option>
<option>四</option>
<option>五</option>
<option>六</option>
<option>日</option>
</select>
今天星期 {{ week }}
程式的基本結構上,AngularJS是非常容易撰寫,下列是填寫表單的基礎運用,只要簡單的幾行程式碼,就可以有驚奇的連動效果:
單價:<input type="text" ng-model="price" ng-init="price = 10"/>
<br>
數量:<input type="text" ng-model="pqrt" ng-init="pqrt = 2"/>
<br>
總價:{{ price * pqrt | currency }}
-雲遊山水為知已逍遙一生而忘齡- 電腦神手