1. 程式人生 > >1.AngularJS 模塊

1.AngularJS 模塊

底部 順序 放置 angularjs 能夠 nts angular template 名稱

上一章講的數據綁定,是把控制器的代碼寫到一個全局命名空間中定義的函數裏:

function MyController($scope) {
var updateClock = function() {
$scope.clock = new Date();
};
setInterval(function() {
$scope.$apply(updateClock);
}, 1000);
updateClock();
};

  

在AngularJS 中,模塊是定義應用的主要方式,包含了主要的應用代碼。一個應用可以包含多個模塊,每個模塊包含具體的代碼。使用模塊有許多好處,比如:

  • 保持全局命名空間的清潔
  • 測試更容易找到相互隔離的功能
  • 可以在不同的應用之間復用代碼
  • 是應用能夠以任意順序加載代碼的各個部分

我們使用angular.module() 方法來聲明模塊,這個方法接受兩個參數,第一個是模塊的名稱,第二個是依賴列表,中括號[]表示該模塊沒有依賴,如果有依賴的話會在中括號寫上依賴的模塊名字。

angular.module(‘myApp‘, []) 方法相當於AngularJS 模塊的setter 方法,用來定義模塊。

angular.module(‘myApp‘) 方法只傳遞一個參數,相當於getter 方法,用來引用模塊。

開發大型應用時,會創建多個模塊類承載業務邏輯。將復雜的功能分割成不同的模塊,有助於單獨為它們編寫測試。

1.創建模塊

<div ng-app="myApp">...</div>
<script>
<!--通過angular.module 函數創建模塊-->
var app = angular.module("myApp", []); 
</script>

  

2.添加控制器

<!--使用ng-controller 指令添加控制器-->
<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
    $scope.firstName = "John";
    $scope.lastName = "Doe";
});
</script>

  

3.添加指令

AngularJS 提供了很多內置的指令,可以用它們來為你的應用添加功能。

<div ng-app="myApp" runoob-directive></div>
<script>
var app = angular.module("myApp", []);
<!--用模塊為應用添加自己的指令-->
app.directive("runoobDirective", function() {
    return {
        template : "我在指令構造器中創建!"
    };
});
</script>

  

4.模塊和控制器包含在JS文件中

通常AngularJS應用程序將模塊和控制器包含在js文件中。

<!DOCTYPE html>
<html>
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<!--myApp.js 包含了應用模塊的定義程序-->
<script src="myApp.js"></script>
<!--myCtrl.js 包含了控制器-->
<script src="myCtrl.js"></script>
</body>
</html>

  

5.什麽時候載入angular.js

對於HTML應用程序,通常建議吧所有的腳本都放置在<body> 元素的最底部。

這回提高網頁加載速度,應為HTML加載不受制於腳本加載。

AngularJS 的庫文件是在<head>標簽裏加載的,因為對angular.module 的調用只能在庫加載完成後才能進行。

另外也可以在<body>元素中加載,但是必須放在AngularJS腳本前面。

1.AngularJS 模塊