AngularJS 是一個(gè) JavaScript 框架高氮。它可通過 <script> 標(biāo)簽添加到 HTML 頁面。
AngularJS 通過 [指令] 擴(kuò)展了 HTML戳护,且通過 [表達(dá)式] 綁定數(shù)據(jù)到 HTML嚎货。
在1.3.0之后放棄了IE8
引入了單向數(shù)據(jù)綁定
刪掉了一堆過時(shí)的API
<b>四大核心特性:</b>
MVC
模塊化
指令系統(tǒng)
雙向數(shù)據(jù)綁定
<b>MVC思想:</b>
Model<->View<->Controller
Model:數(shù)據(jù)模型層
View:視圖層,負(fù)責(zé)展示
Controller:業(yè)務(wù)邏輯和控制邏輯
好處:職責(zé)清晰虑凛,代碼模塊化
問題:為什么23種設(shè)計(jì)模式里面沒有MVC?
<h5>AngularJS 擴(kuò)展了 HTML</h5>
AngularJS 通過 ng-directives 擴(kuò)展了 HTML碑宴。
ng-app 指令定義一個(gè) AngularJS 應(yīng)用程序。
ng-model 指令把元素值(比如輸入域的值)綁定到應(yīng)用程序桑谍。
ng-bind 指令把應(yīng)用程序數(shù)據(jù)綁定到 HTML 視圖延柠。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div ng-app="">
<p>名字 : <input type="text" ng-model="name"></p>
<h1>Hello {{name}}</h1>
</div>
<script src="angular.js"></script>
</body>
</html>
講解:
當(dāng)網(wǎng)頁加載完畢,AngularJS 自動(dòng)開啟锣披。
ng-app 指令告訴 AngularJS贞间,<div> 元素是 AngularJS 應(yīng)用程序 的"所有者"。
ng-model 指令把輸入域的值綁定到應(yīng)用程序變量 name雹仿。
ng-bind 指令把應(yīng)用程序變量 name 綁定到某個(gè)段落的 innerHTML增热。
如果您移除了 ng-app 指令,HTML 將直接把表達(dá)式顯示出來胧辽,不會(huì)去計(jì)算表達(dá)式的結(jié)果峻仇。
<b>什么是 AngularJS?</b>
- AngularJS 使得開發(fā)現(xiàn)代的單一頁面應(yīng)用程序(SPAs:Single Page Applications)變得更加容易邑商。
- AngularJS 把應(yīng)用程序數(shù)據(jù)綁定到 HTML 元素摄咆。
- AngularJS 可以克隆和重復(fù) HTML 元素凡蚜。
- AngularJS 可以隱藏和顯示 HTML 元素。
- AngularJS 可以在 HTML 元素"背后"添加代碼吭从。
- AngularJS 支持輸入驗(yàn)證朝蜘。
<b>AngularJS 指令</b>
正如您所看到的,AngularJS 指令是以 ng 作為前綴的 HTML 屬性涩金。
ng-init 指令初始化 AngularJS 應(yīng)用程序變量谱醇。
<div ng-app="" ng-init="firstName='John'">
<p>姓名為 <span ng-bind="firstName"></span></p>
</div>
HTML5 允許擴(kuò)展的(自制的)屬性,以 data- 開頭步做。AngularJS 屬性以 ng- 開頭枣抱,但是您可以使用 data-ng- 來讓網(wǎng)頁對 HTML5 有效。
<div data-ng-app="" data-ng-init="firstName='John'">
<p>姓名為 <span data-ng-bind="firstName"></span></p>
</div>
<b>AngularJS 表達(dá)式</b>
AngularJS 表達(dá)式寫在雙大括號內(nèi):{{ expression }}辆床。
AngularJS 表達(dá)式把數(shù)據(jù)綁定到 HTML佳晶,這與 ng-bind 指令有異曲同工之妙。
AngularJS 將在表達(dá)式書寫的位置"輸出"數(shù)據(jù)讼载。
AngularJS 表達(dá)式 很像 JavaScript 表達(dá)式:它們可以包含文字轿秧、運(yùn)算符和變量。
實(shí)例 {{ 5 + 5 }} 或 {{ firstName + " " + lastName }}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div ng-app="">
<p>我的第一個(gè)表達(dá)式: {{ 5 + 5 }}</p>
</div>
</body>
</html>
//運(yùn)行結(jié)果為:我的第一個(gè)表達(dá)式:10
<b>AngularJS 應(yīng)用</b>
- AngularJS 模塊(Module) 定義了 AngularJS 應(yīng)用咨堤。
- AngularJS 控制器(Controller) 用于控制 AngularJS 應(yīng)用菇篡。
- ng-app指令定義了應(yīng)用, ng-controller 定義了控制器。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<p>嘗試修改以下表單一喘。</p>
<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= "L";
$scope.lastName= "Madman";
});
</script>
<b>AngularJS 模塊</b>
var app = angular.module('myApp', []);```
><b>AngularJS 控制器</b>
app.controller('myCtrl', function($scope) {
$scope.firstName= "L";
$scope.lastName= "Madman";
});```