AngularJS安裝配置與基礎概要整理(上)


以前整理的,可供參考。

安裝:

1.首先要安裝node.js和它的npm包管理系統。(nodejs相關待整理)

2.安裝grunt

  .grunt是一個基於任務的Javascript工程命令行構建工具。

  在dos窗口輸入:npm install grunt-cli -g

  具體模塊安裝:npm install(gruntgrunt模塊的名稱) --save-dev

3.安裝Karma runner

  在dos窗口輸入:npm install karma-cli -g

  安裝Karmanpm install karma --save-dev

  安裝你項目需要的組件:npm install karma-jasmine karma-chrome-launcher --sava-dev

4.下載angular.js

  在這個網站下載:https://code.angularjs.org/

  選定一個2.0以前的版本。

 

一、AngularJS簡介

  AngularJS是一個JavaScript框架。它可通過<script>標簽添加到HTML頁面。

  AngularJS通過指令擴展了HTML,且通過表達式綁定數據到HTML

1.AngularJS通過ng-directives擴展了HTML

  Ng-app指令定義一個AngularJS應用程序。

  Ng-model指令把元素值(比如輸入域的值)綁定到應用程序。

  Ng-bind指令把應用程序數據綁定到HTML視圖。

2.什么是AngularJS

  AngularJS使得開發現代的單一頁面應用程序變得更加容易。

  ·AngularJS把應用程序數據綁定到HTML元素。

  ·AngularJS可以克隆和重復HTML元素。

  ·AngularJS可以隱藏和顯示HTML元素。

  ·AngularJS可以在HTML元素“背后”添加代碼。

  ·AngularJS支持輸入驗證。

3.AngularJS指令

  AngularJS指令是以ng作為前綴的HTML屬性。

  Ng-init指令初始化AngularJS應用程序變量。

  * HTML5允許擴展的(自制的)屬性,以data-開頭。

   AngularJS屬性以ng-開頭,但是可以使用data-ng-來讓網頁對HTML5有效。

4.AngularJS表達式

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

  AngularJS表達式把數據綁定到HTML,這與ng-bind指令有異曲同工之妙。

  AngularJS將在表達式書寫的位置“輸出”數據。

  AngularJS表達式很像Javascript表達式:它們可以包含文字、運算符和變量。

5.AngularJS應用

  AngularJS模塊(module)定義了AngularJS應用。

  AngularJS控制器(Controller)用於控制AngularJS應用。

  Ng-app指令定義了應用,ng-controller定義了控制器。

  AngularJS模塊定義應用:

Var app = angular.module(‘myApp’,{});

  AngularJS控制器控制應用:

App.controller(‘myCtrl’,function($scope){

  $scope.firstName = “John”;

  $scope.lastName = “Doe”;

})

 

二、AngularJS表達式

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

1.AngularJS數字

<div ng-app=”” ng-init=”quantity=1;cost=5”>

<p>總價:{{quantity * cost}}</p>

</div>

  使用ng-bind的相同實例:

<div ng-app=”” ng-init=”quantity=1;cost=5”>

  <p>總價:<span ng-bind=”quantity * cost”></span></p>

</div>

2.AngularJS字符串

<div ng-app=”” ng-init=”firstName=’John’;lastName=’Doe’”>

  <p>姓名:{{firstName + “ “ + lastName}}</p>

</div>

  使用ng-bind的相同實例:

<div ng-app=”” ng-init=”firstName=’John’;lastName=’Doe’”>

  <p>姓名:<span ng-bind=”firstName + ‘ ‘ + lastName”></span></p>

</div>

3.AngularJS對象

<div ng-app=”” ng-init=”person={firstName:’John’,lastName:’Doe’}”>

  <p>姓為{{person.lastName}}</p>

</div>

4.AngularJS數組

<div ng-app=”” ng-init=”points=[1,15,19,2,40]”>

  <p>第三個值為{{points[2]}}</p>

</div>

5.AngularJS表達式與JavaScript表達式

  類似於JavaScript表達式,AngularJS表達式可以包含字母,操作符,變量。

  與JavaScript表達式不同,AngularJS表達式可以寫在HTML中;AngularJS表達式不支持條件判斷,循環及異常;AngularJS表達式支持過濾器。

 

三、AngularJS指令

  AngularJS通過被稱為指令的新屬性來擴展HTML

  AngularJS通過內置的指令來為應用添加功能。

  AngularJS允許你自定義指令。

1.AngularJS指令

  AngularJS指令是擴展的HTML屬性,帶有前綴ng-

  Ng-app指令初始化一個AngularJS應用程序。

  Ng-init指令初始化應用程序數據。

  Ng-model指令把元素值(比如輸入域的值)綁定到應用程序。

2.數據綁定

  AngularJS中的數據綁定,同步了AngularJS表達式與AngularJS數據。

  在下一個示例中,兩個文本域是通過兩個ng-model指令同步的。

<div ng-app=”” ng-init=”quantity=1;price=5;”>

  <h2>價格計算器</h2>

  數量:<input type=”number” ng-model=”quantity”>

  價格:<input type=”number” ng-model=”price”>

  <p><b>總價:</b>{{quantity*price}}</p>

</div>

3.重復HTML元素

  Ng-repeat指令會重復一個HTML元素:

<div ng-app=”” ng-init=”names=[‘Jani’,’Hege’,’Kai’]”>

  <p>使用ng-repeat來循環數組</p>

  <ul>

    <li ng-repeat=”x in names”>

      {{x}}

    </li>

  </ul>

</div>

Ng-repeat指令用在一個對象數組上

<div ng-app=”” ng-init=”names=[{name:’Jani’,country:’Norway’},{name:’Hege’,country:’Sweden’},{name:’Kai’,country:’Denmark’}]”>

  <p>循環對象:</p>

  <ul>

    <li ng-repeat=”x in names”>

      {{x.name + ‘,’ + x.country}}

    </li>

  </ul>

</div>

* AngularJS完美支持數據庫的CRUD(增加Create、讀取Read、更新Update、刪除Delete)應用程序。把實例中的對象想象成數據庫中的記錄。

4.ng-app指令

  Ng-app指令定義了AngularJS應用程序的根元素

  Ng-app指令在網頁加載完畢時會自動引導(自動初始化)應用程序。

5.ng-init指令

  Ng-init指令為AngularJS應用程序定義了初始值。

  通常情況下,不使用ng-init。您將使用一個控制器或模塊來代替它。

6.ng-model指令

  Ng-model指令綁定HTML元素到應用程序數據。

  Ng-model指令也可以:

  ·為應用程序數據提供類型驗證(numberemailrequired)。

  ·為應用程序數據提供狀態(invaliddirtytouchederror)。

  ·為HTML元素提供CSS類。

  ·綁定HTML元素到HTML表單。

7.ng-repeat指令

  Ng-repeat指令對於集合中(數組中)的每個項會克隆一次HTML元素。

8.創建自定義的指令

  可以使用.directive函數來添加自定義的指令。

  要調用自定義指令,HTML元素上需要添加自定義指令名。

  使用駝峰法來命名一個指令,runoobDirective,但在使用它時需要以-分割,runoob-directive

<body ng-app=”myApp”>

  <runoob-directive></runoob-directive>

<script>

  Var app = angular.module(“myApp”,[]);

  App.directive(“runoobDirective”,function(){

    Return{

      Template : “<h1>自定義指令!</h1>”

    };

  });

</script>

</body>

  可以通過以下方式來調用指令:

    ·元素名

    ·屬性

    ·類名

    ·注釋

  以下實例方式也能輸出同樣結果:

  元素名:

<runoob-directive></runoob-directive>

  屬性:

<div runoob-directive></div>

  類名:

<div class=”runoob-directive”></div>

  注釋:

<!-- 指令:runoob-directive -->

*需要在該實例添加replace屬性,否則評論是不可見的。

*必須設置restrict的值為M才能通過注釋來調用指令。

<body ng-app=”myApp”>

  <!-- directive: runoob-directive -->

  <script>

    Var app = angular.module(“myApp”,[]);

    App.directive(“runoobDirective”,function(){

      Return {

        Restrict : “M”,

        Replace : true,

        Template : “<h1>自定義指令!</h1>”

      };

    });

  </script>

</body>

9.限制使用

  可以限制指令只能通過特定的方式來調用。

  通過添加restrict屬性,並設置值為”A”,來設置指令只能通過屬性的方式來調用:

Var app = angular.module(“myApp”,[]);

  App.directive(“runoobDirective”,function(){

    Return {

      Restrict : “A”,

      Template : “<h1>自定義指令!</h1>”

    };

  });

  Restrict值可以是以下幾種:

    ·E只限元素名使用

    ·A只限屬性使用

    ·C只限類名使用

    ·M只限注釋使用

  Restrict默認值為EA,即可以通過元素名和屬性名來調用指令。

 

四、AngularJS模型

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

  可以將輸入域的值與AngularJS創建的變量綁定。

<div ng-app=”myApp” ng-controller=”myCtrl”>

  名字:<input ng-model=”name”>

</div>

<script>

Var app = angular.module(‘myApp’,[]);

App.controller(‘myCtrl’,function($scope){

  $scope.name = “John Doe”;

})

</script>

1.雙向綁定

  雙向綁定,在修改輸入域的值時,AngularJS屬性的值也將修改:

<div ng-app=”myApp” ng-controller=”myCtrl”>

  名字:<input ng-model=”name”>

  <h1>你輸入了:{{name}}</h1>

</div>

2.驗證用戶輸入

<form ng-app=”” name=”myForm”>

  Email:

  <input type=”email” name=”myAddress” ng-model=”text”>

  <span ng-show=”myForm.myAddress.$error.email”>

    不是一個合法的郵箱地址

  </span>

</form>

*以上實例中,提示信息會在ng-show屬性返回true的情況下顯示。

3.應用狀態

  Ng-model指令可以為應用數據提供狀態值(invalid,dirty,touched,error)

<form ng-app=”” name=”myForm” ng-init=”myText = ‘test@runoob.com’”>

  Email:

  <input type=”email” name=”myAddress” ng-model=”myText” required>

  <p>編輯郵箱地址,查看狀態的改變。</p>

  <h1>狀態</h1>

  <p>Valid:{{myForm.myAddress.$valid}}(如果輸入的值是合法的則為true)。</p>

  <p>Dirty:{{myForm.myAddress.$dirty}}(如果值改變則為true)。</p>

  <p>Touched:{{myForm.myAddress.$touched}}(如果通過觸屏點擊則為true)。</p>

</form>

4.CSS

  Ng-model指令基於它們的狀態為HTML元素提供了CSS類:

<style>

Input.ng-invalid{

  Background-color: lightblue;

}

</style>
<form ng-app=”” name=”myForm”>

  輸入你的名字:

  <input name=”myName” ng-model=”myText” required>

</form>

<p>編輯文本域,不同狀態背景顏色會發生變化</p>

<p>文本域添加了required屬性,該值時必須的,如果為空則是不合法的。</p>

  Ng-model指令根據表單域的狀態添加/移除以下類:

  ·ng-empty

  ·ng-not-empty

  ·ng-touched

  ·ng-untouched

  ·ng-valid

  ·ng-invalid

  ·ng-dirty

  ·ng-pending

  ·ng-pristine


免責聲明!

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



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