AngularJS 應用



現在是時候建立一個真正的 AngularJS 單頁 Web 應用程式(single page web application,SPA)了。


AngularJS 應用程式實例

您已經學習了足夠多關於AngularJS 的知識,現在可以開始創建您的第一個AngularJS 應用程式:


應用程式講解

#實例

<!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>剩余字数: <span ng-bind="left()"></span></p>

<script src="myNoteApp.js"></script>
<script src="myNoteCtrl.js"></script>

</body>
</html>

執行實例»

點擊"運行實例" 按鈕查看線上實例

應用程式檔案"myNoteApp.js":

var app = angular.module( "myNoteApp", []);

控制器檔案"myNoteCtrl.js":

app.controller("myNoteCtrl", function($scope) {
    $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" 的容器:

<#html ng-app="myNoteApp">

<div> 是HTML 頁面中控制器: ng-controller="myNoteCtrl" 的作用域:

<div ng-controller="myNoteCtrl ">

ng-model 指令綁定了<textarea> 到控制器變數message:

<textarea ng-model="message" cols="40" rows="10"#></textarea>
#

兩個ng-click 事件呼叫了控制器函數clear()save():

##<button ng-click="save()">Save</button>
<button ng-click=##" clear()">Clear<#/button>
#ng-bind

指令綁定控制器函數left() 到<span> ,用於顯示剩餘字元:

Number of characters left:
<
span ng-bind="left()"></span>
應用程式庫檔案需要在AngularJs 載入後才能執行:

< ;
script src="myNoteApp.js"><##/ script><
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 作為應用的根進行編譯。

應用程式的根可以是整個頁面,或者頁面的一小部分,如果是一小部分會更快編譯和執行。