AngularJs 入門系列-1 使用 AngularJs 搭建頁面基本框架


每當看到前端程序員在腳本、樣式、表單處理邏輯中苦苦掙扎的時候,我就在想,為什么不用Angular Js 呢?

Angular Js 支持頁面前端的 MVC 模式開發,在 Angular JS 的支持下,我們可以將頁面前端處理的數據與頁面展示進行分離,實現優雅的代碼結構。

首先,我們需要到 AngularJs 的官網下載這個腳本庫。

地址:https://angularjs.org/

不過,這個網站經常被封,你也可以直接在這里下載: http://files.cnblogs.com/haogj/AngularJs-1.3.10.zip

1. 在頁面引用 AngularJs 腳本

AngularJs 是一個獨立的腳本庫,許多人詢問是否還需要 jQuery,答案是不需要。你只需要在頁面引用 AngularJs 的腳本文件就可以了,甚至,AngularJs 還實現了一個精簡版的 jQuery。不過它也可以和 jQuery 一起使用。

在 ASP.NET MVC 的頁面視圖中,可以直接引用,也可以通過 @section 將腳本放置到布局 Layout 的 scripts 節中。

@section scripts {
    <script src="~/Scripts/angular-1.3.10.min.js"></script>
    <script>
    </script>
}

 

2. 創建 WebApp 和控制器

在 AngularJs 中,每個頁面被看作一個獨立的 WebApp,每個 WebApp 中可以包括多個獨立的處理部分,我們稱為 Controller,每個 Controller 有自己獨立的處理上下文和邏輯。

AngularJs 通過指令 ng-app 來划定這個 WebApp 的作用域,通常可以將這個 ng-app 直接寫在 html 標記之上,也可以寫在一個元素之上,我們這里寫在這個視圖中的 div 標記之上。

ng-controller 用來划定 WebApp 中的控制器的作用域,通常,我們會給它起一個名字。

<div ng-app="myApp">
    <div ng-controller="myController">

    </div>
</div>

下面,在腳本中創建我們的 WebApp 和控制器。

1 <script src="~/Scripts/angular-1.2.14.min.js"></script>
2 <script>
3     var app = angular.module("myApp", []);
4 
5     app.controller("myController", function ($scope, $http) {
6         $scope.message = "Hello, Angular JS.";
7     });
8 </script>

上面的第三行創建 WebApp,注意第一個參數是應用的名稱,需要與頁面指令中的 WebApp 名稱匹配,第二個參數數組是必須的。

第五行創建了應用中的控制器,特別需要注意的是控制器的匿名函數參數,這兩個參數的名稱不可以修改,在 AngularJs 中,參數的名稱用來進行依賴注入。

第一個參數 $scope 就是這個控制器的上下文對象,通過它我們將模型,視圖,和處理邏輯粘合在一起。

3. 創建視圖

在 AngularJs 中,視圖是通過標准的 HTML 實現的。

注意,我們上面代碼的第 6 行,我們在上下文對象上保存了一個 message ,這就是我們的模型,我們希望這個模型中的數據,可以在頁面展示出來。

在 Controller 的元素內部,創建一個新的 div 來容納我們的內容,我們准備使用 h2 標記將這個 message 的內容顯示出來。

視圖怎樣與我們的模型綁定在一起呢?各種模板都有自己的綁定語法,AngularJs 的方式是 {{ }}。其中可以寫一個表達式。

<div ng-app="myApp">

    <div ng-controller="myController">

        <div>
            <h2>{{message}}</h2>
        </div>

    </div>

</div>

現在運行一下程序,你應該已經在頁面看到輸出結果了。

 

4. 實現模型和視圖的雙向綁定

如果我們需要編輯這個 message 呢?編輯之后如何獲取編輯之后的內容呢?angularjs 支持雙向綁定,也就是說既可以從我們的模型獲取數據,如果數據被編輯了,編輯之后的內容也通過可以被 angularjs 同步到模型上。

雙向綁定實際上是 angularjs 內部支持的,我們並不需要特別的編碼。在這里我們添加一個編輯框來支持編輯。

<div ng-app="myApp">

    <div ng-controller="myController">

        <div>
            <h2>{{message}}</h2>
            <input type="text" ng-model="message" />
        </div>

    </div>

</div>

注意 input 元素的 ng-model 屬性,它表示我們需要雙向綁定 message 到這個編輯元素上。

重新運行程序,你看到 message 的內容也同步出現在編輯框中,如果你修改編輯框中的內容,標題中的內容也將會同步變化。你的編輯結果已經同步到了模型上。

總結

 angularJs 是一個比較重的腳本庫,雖然內部高度復雜,注意關鍵的使用細節,使用起來其實非常簡單。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM