AngularJS 應用
現在是時候創建一個真正的AngularJS 單頁Web 應用(single page web application,SPA)了。
AngularJS 應用實例
您已經學習了足夠多關於AngularJS 的知識,現在可以開始創建您的第一個AngularJS 應用程序:
我的筆記
剩餘字數:100
應用程序講解
AngularJS 實例
< head >
< meta charset = "utf-8" >
< script src= "http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js" > < /script >
< /head >
< body >
< div ng-controller= "myNoteCtrl" >
< h2 >我的筆記< /h2 >
< p > < textarea ng-model= "message" cols= "40" rows= "10" > < /textarea > < /p >
< p >
< button ng-click= "save()" >保存< /button >
< button ng-click= "clear()" >清除< /button >
< /p >
< p > Number of characters left: < span ng-bind= "left()" > < /span > < /p >
< /div >
< script src= "myNoteApp.js" > < /script >
< script src= "myNoteCtrl.js" > < /script >
< /body >
< /html >
嘗試一下»
應用程序文件"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應用: ng-app=" myNoteApp "的容器:
<div>是HTML頁面中控制器: ng-controller=" myNoteCtrl "的作用域:
ng-model指令綁定了<textarea>到控制器變量message :
兩個ng-click事件調用了控制器函數clear()和save() :
< button ng-click= "clear()" > Clear < /button >
ng-bind指令綁定控制器函數left()到<span> ,用於顯示剩餘字符:
應用庫文件需要在AngularJs 加載後才能執行:
< script src= "myNoteCtrl.js" > < /script >
AngularJS 應用架構
以上實例是一個完整的AngularJS 單頁Web應用(single page web application,SPA)。
<html>元素包含了AngularJS應用( ng-app= )。
<div>元素定義了AngularJS控制器的作用域( ng-controller= )。
在一個應用可以由很多控制器。
應用文件( my...App.js )定義了應用模型代碼。
一個或多個控制器文件( my...Ctrl.js )定義了控制器代碼。
總結- 它是如何工作的呢?
ng-app 指令位於應用的根元素下。
對於單頁Web應用(single page web application,SPA),應用的根通常為<html> 元素。
一個或多個ng-controller 指令定義了應用的控制器。 每個控制器有他自己的作用域:: 定義的HTML 元素。
AngularJS 在HTML DOMContentLoaded 事件中自動開始。 如果找到ng-app 指令, AngularJS 載入指令中的模塊,並將ng-app 作為應用的根進行編譯。
應用的根可以是整個頁面,或者頁面的一小部分,如果是一小部分會更快編譯和執行。