AngularJS 應(yīng)用
現(xiàn)在是時(shí)候創(chuàng)建一個(gè)真正的 AngularJS 單頁(yè) Web 應(yīng)用(single page web application,SPA)了。
AngularJS 應(yīng)用實(shí)例
您已經(jīng)學(xué)習(xí)了足夠多關(guān)于 AngularJS 的知識(shí),現(xiàn)在可以開(kāi)始創(chuàng)建您的第一個(gè) AngularJS 應(yīng)用程序:
應(yīng)用程序講解
實(shí)例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="//cdn.bootcss.com/angular.js/1.4.6/angular-animate.min.js"></script> </head> <body ng-app="myNoteApp" ng-controller="myNoteCtrl"> <h2>我的筆記</h2> <textarea ng-model="message" cols="40" rows="10"></textarea> <p> <button ng-click="save()">保存</button> <button ng-click="clear()">清除</button> </p> <p>剩余字?jǐn)?shù): <span ng-bind="left()"></span></p> <script src="myNoteApp.js"></script> <script src="myNoteCtrl.js"></script> </body> </html>
運(yùn)行實(shí)例 ?
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
應(yīng)用程序文件 "myNoteApp.js":
控制器文件 "myNoteCtrl.js":
$scope.message = "";
$scope.left = function() {return 100 - $scope.message.length;};
$scope.clear = function() {$scope.message = "";};
$scope.save = function() {alert("Note Saved");};
});
<html> 元素是 AngularJS 應(yīng)用: ng-app="myNoteApp" 的容器:
<div> 是 HTML 頁(yè)面中控制器: ng-controller="myNoteCtrl" 的作用域:
ng-model 指令綁定了 <textarea> 到控制器變量 message:
兩個(gè) ng-click 事件調(diào)用了控制器函數(shù) clear() 和 save():
<button ng-click="clear()">Clear</button>
ng-bind 指令綁定控制器函數(shù) left() 到<span> ,用于顯示剩余字符:
應(yīng)用庫(kù)文件需要在 AngularJs 加載后才能執(zhí)行:
<script src="myNoteCtrl.js"></script>
AngularJS 應(yīng)用架構(gòu)
以上實(shí)例是一個(gè)完整的 AngularJS 單頁(yè)Web應(yīng)用(single page web application,SPA)。
<html> 元素包含了 AngularJS 應(yīng)用 (ng-app=)。
<div> 元素定義了 AngularJS 控制器的作用域 (ng-controller=)。
在一個(gè)應(yīng)用可以由很多控制器。
應(yīng)用文件(my...App.js) 定義了應(yīng)用模型代碼。
一個(gè)或多個(gè)控制器文件 (my...Ctrl.js) 定義了控制器代碼。
總結(jié) - 它是如何工作的呢?
ng-app 指令位于應(yīng)用的根元素下。
對(duì)于單頁(yè)Web應(yīng)用(single page web application,SPA),應(yīng)用的根通常為 <html> 元素。
一個(gè)或多個(gè) ng-controller 指令定義了應(yīng)用的控制器。每個(gè)控制器有他自己的作用域:: 定義的 HTML 元素。
AngularJS 在 HTML DOMContentLoaded 事件中自動(dòng)開(kāi)始。如果找到 ng-app 指令 , AngularJS 載入指令中的模塊,并將 ng-app 作為應(yīng)用的根進(jìn)行編譯。
應(yīng)用的根可以是整個(gè)頁(yè)面,或者頁(yè)面的一小部分,如果是一小部分會(huì)更快編譯和執(zhí)行。