AngularJS學習筆記

AngularJS整體作用

總的來說AngularJS分爲三個部分,AngularJS應用,AngularJS表達式,AngularJS指令。
效果上是AngularJS 通過新的屬性和表達式擴展了 HTML。
AngularJS 是以一個 JavaScript 文件形式發佈的,在使用時,可通過 script 標籤添加到網頁中

<script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>

AngularJs

AngularJS 應用組成如下:
View(視圖), 即 HTML。
Model(模型), 當前視圖中可用的數據。
Controller(控制器), 即 JavaScript 函數,可以添加或修改屬性。

AngulaiJS表達式

AngularJS 表達式寫在雙大括號內:{{ expression }}。
AngularJS 表達式把數據綁定到 HTML,這與 ng-bind 指令有異曲同工之妙。
AngularJS 將在表達式書寫的位置"輸出"數據。
AngularJS 表達式 很像 JavaScript 表達式:它們可以包含文字、運算符和變量。
實例 {{ 5 + 5 }} 或 {{ firstName + " " + lastName }}

AngularJS 數字

AngularJS 數字就像 JavaScript 數字:

<div ng-app="" ng-init="quantity=1;cost=5">
	<p>總價: {{ quantity * cost }}</p>
</div>

AngularJS 字符串

AngularJS 字符串就像 JavaScript 字符串:

<div ng-app="" ng-init="firstName='John';lastName='Doe'">
	<p>姓名: {{ firstName + " " + lastName }}</p>
</div>

AngularJS 對象

AngularJS 對象就像 JavaScript 對象:

<div ng-app="" ng-init="person={firstName:'John',lastName:'Doe'}">
	<p>姓爲 {{ person.lastName }}</p>
</div

AngularJS 數組

AngularJS 數組就像 JavaScript 數組:

<div ng-app="" ng-init="points=[1,15,19,2,40]">
	<p>第三個值爲 {{ points[2] }}</p>
</div>

AngularJS指令

AngularJS 指令是擴展的 HTML 屬性,帶有前綴 ng-
ng-app 指令初始化一個 AngularJS 應用程序。
ng-init 指令初始化應用程序數據。
ng-model 指令把元素值(比如輸入域的值)綁定到應用程序。

ng-app指令

ng-app 指令定義了 AngularJS 應用程序的 根元素。
ng-app 指令在網頁加載完畢時會自動引導(自動初始化)應用程序。

ng-init 指令

ng-init 指令爲 AngularJS 應用程序定義了 初始值。
通常情況下,不使用 ng-init。您將使用一個控制器或模塊來代替它

ng-model指令

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

<form ng-app="" name="myForm" ng-init="myText = '[email protected]'">
    Email:
    <input type="email" name="myAddress" ng-model="myText" required></p>
    <h1>狀態</h1>
    {{myForm.myAddress.$valid}}
    {{myForm.myAddress.$dirty}}
    {{myForm.myAddress.$touched}}
</form>

ng-valid:布爾型屬性,它指示表單是否通過驗證。如果表單當前通過驗證,他將爲true
ng-dirty:布爾值屬性,表示用戶是否修改了表單。 ture,表示有修改過;false 表示修沒有
ng-touched:布爾值屬性,表示用戶是否和控件進行過交互

ng-repeat 指令

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

<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>

注意:ng-model 是用於表單元素的,支持雙向綁定。對普通元素無效;
ng-bind 用於普通元素,不能用於表單元素,應用程序單向地渲染數據到元素;
當 ng-bind 和 {{}} 同時使用時,ng-bind 綁定的值覆蓋該元素的內容。

AngularJS Scope(作用域)

Scope(作用域) 是應用在 HTML (視圖) 和 JavaScript (控制器)之間的紐帶。
scope 是模型,是一個 JavaScript 對象,帶有屬性和方法,這些屬性和方法可以在視圖和控制器中使用。
Scope 可應用在視圖和控制器上

如何使用 Scope

當你在 AngularJS 創建控制器(JavaScript文件)時,你可以將 $scope 對象當作一個參數傳遞:

<div ng-app="myApp" ng-controller="myCtrl">
	<h1>{{carname}}</h1>
</div>

<script>
var app = angular.module('myApp', []);
	app.controller('myCtrl', function($scope) {
	    $scope.carname = "Volvo";
	});
</script>

當在控制器中添加 $scope 對象時,視圖 (HTML) 可以獲取了這些屬性。
視圖中,你不需要添加 $scope 前綴, 只需要添加屬性名即可,如: {{carname}}。

AngularJS 控制器

AngularJS 應用程序被控制器控制。
ng-controller 指令定義了應用程序控制器。
控制器是 JavaScript 對象,由標準的 JavaScript 對象的構造函數創建。

<div ng-app="myApp" ng-controller="myCtrl">: <input type="text" ng-model="firstName"><br>: <input type="text" ng-model="lastName"><br>
	<br>姓名: {{firstName + " " + lastName}}
</div>
<script>
var app = angular.module('myApp', []);
	app.controller('myCtrl', function($scope) {
	    $scope.firstName = "John";
	    $scope.lastName = "Doe";
	});
</script>

應用解析:
AngularJS 應用程序由 ng-app 定義。應用程序在 < div > 內運行。
ng-controller=“myCtrl” 屬性是一個 AngularJS 指令。用於定義一個控制器。
myCtrl 函數是一個 JavaScript 函數。
AngularJS 使用$scope 對象來調用控制器。
在 AngularJS 中, $scope 是一個應用對象(屬於應用變量和函數)。
控制器的 $scope (相當於作用域、控制範圍)用來保存AngularJS Model(模型)的對象。
控制器在作用域中創建了兩個屬性 (firstName 和 lastName)。
ng-model 指令綁定輸入域到控制器的屬性(firstName 和 lastName)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章