AngularJS 1.x系列:AngularJS簡介及第一個應用(2)


1. 安裝AngularJS

1.1 AngularJS官網

  Github源碼:https://github.com/angular/angular.js

  官網:https://angularjs.org/

1.2 npm安裝AngularJS

npm install angular

2. AngularJS應用的構成元素

  ◊ 模型(Model):AngularJS應用中用於展示到頁面的數據,本質是一個JavaScript對象。

  ◊ 視圖(View):View是用戶所看到的網頁內容,View是AngularJS指令與表達式經過解析后的DOM元素

  ◊ 控制器(Controller):AngularJS中用於處理業務邏輯的JavaScript方法。

  ◊ 作用域(Scope):作用域可以理解為一個容器,在控制器(Controller)中可以訪問這個容器(Scope),往容器中放入數據模型,在視圖(View)中可以通過表達式將數據展現給用戶。

  ◊ 指令(Directives):擴展的HTML屬性或標簽,能夠被AngularJS框架識別,根據不同的指令執行相應的動作。

  ◊ 表達式(Expressions):用於向頁面輸出信息。

  ◊ 模板(Template):AngularJS以HTML作為模板語言,AngularJS模板時間是HTML片段。

3. AngularJS第一個應用

  示例:

<!DOCTYPE html>
<html ng-app>
    <head>
        <meta charset="utf-8" />
        <script src="../lib/angular.min.js"></script>
    </head>
    <body>
        {{"Hello AngularJS!"}}
    </body>
</html>

  說明:<html>標簽中ng-app是AngularJS的一個內置指令,可以出現在任意位置。

  ng-app兩個作用:

  (1). 啟動AngularJS框架;

  (2). AngularJS框架管理ng-app指令所在標簽的開始標簽到結束標簽之間的所有DOM元素。

  {{}}:是AngularJS的表達式形式,由兩個嵌套的大括號構成,大括號中間為表達式內容。AngularJS會對表達式內容進行解析,將表達式內容輸出到瀏覽器。

4. AngularJS表達式

  AngularJS使用表達式把數據綁定到HTML。

4.1 表達式定義方式

  AngularJS 表達式寫在雙大括號內:{{ expression }}。 

4.2 表達式中的四則運算

<!DOCTYPE html>
<html ng-app>
    <head>
        <meta charset="utf-8" />
        <script src="../lib/angular.min.js"></script>
    </head>
    <body>
          四則運算:5 + 5 = {{ 5 + 5 }}
    </body>
</html>

4.3 表達式中的邏輯運算

<!DOCTYPE html>
<html ng-app>
    <head>
        <meta charset="utf-8" />
        <script src="../lib/angular.min.js"></script>
    </head>
    <body>
          邏輯運算:true && false = {{ true && false }}
    </body>
</html>

4.4 表達式與作用域

<!DOCTYPE html>
<html ng-app>
    <head>
        <meta charset="utf-8" />
        <script src="../lib/angular.min.js"></script>
    </head>
    <body>
        <div ng-init="points=[1,15,19,2,40]"> 
            <p>第三個值為 {{ points[2] }}</p> 
        </div>
    </body>
</html>

  ng-init指令:用於初始化作用域。

5. AngularJS數據綁定

  數據綁定是AngularJS框架在視圖(View)與作用域(Scope)之間建立的數據同步機制。

5.1 雙向綁定ng-model

  AngularJS雙向綁定:View的操作能實時同步到Scope中,Scope中的數據修改能夠實時回顯到View中。

  ng-model 指令:用於綁定應用程序數據到 HTML 控制器(input, select, textarea)的值。

  ng-model 指令可以將輸入域的值與 AngularJS 創建的變量綁定。

<!DOCTYPE html>
<html ng-app="app">
    <head>
        <meta charset="utf-8" />
        <script src="../lib/angular.min.js"></script>
        <script type="text/javascript">
            var app = angular.module("app", []);
            app.controller("HelloCtrl", function($scope) {
                $scope.text = "Hello AngularJS!";
            });
        </script>
    </head>
    <body>
        <div ng-controller="HelloCtrl">
            <input type="text" ng-model="text" /></div>
    </body>
</html>
<!DOCTYPE html>
<html ng-app>
    <head>
        <meta charset="utf-8" />
        <script src="../lib/angular.min.js"></script>
    </head>
    <body>
        <input type="text" ng-model="name" />
        {{ name }}
    </body>
</html>

  :上例中ng-app指令用於啟動AngularJS應用。當AngularJS遇到ng-app指令時,會創建$rootScope作用域,為AngularJS的根作用域。

  把ng-model制定作為屬性添加到input標簽中,AngularJS會在$rootScope作用域中添加屬性。

  當input表單中輸入內容發生變化時,AngularJS會自動把輸入的內容同步到作用域的屬性中。

  {{ name }}為AngularJS表達式形式,可以訪問AngularJS作用域中的屬性。AngularJS能夠監控作用域中數據的變化,當數據發生變化時,頁面實時更新顯示內容。

5.2 單向綁定ng-bind

  ng-bind指令:實現作用域(Scope)到視圖(View)的單向數據綁定,和表達式功能類似。

<div>{{ text }}</div>
<div ng-bind="text"></div>

  ng-bind與{{ expression }}區別:

  在使用AngularJS表達式{{ expression }}時,如果遇到網絡問題,會導致AngularJS加載緩慢,瀏覽器會直接把AngularJS表達式當作字符串渲染到頁面中。

  ng-bind指令在AngularJS沒有加載完畢時不會解析執行,只有AngularJS加載完畢才會解析顯示。

  推薦使用ng-bind指令。


免責聲明!

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



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