[AngularJS] Module: 模組

[AngularJS] Module: AngularJS 的模組

AngularJS 模組

AngularJS module可以將AngularJS 定義成各個模組,而各個module會有屬於各自的Controller

新增一個 Module

使用AngularJS 的function angular.module 建立module

<div ng-app="myApp">...</div>

<script>

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

</script>

"myApp" 參數定義了在哪個HTML元素裡使用AngularJS 。

現在,加上AngularJS 的 controller

新增一個 Controller

新增一個controller,並加入ng-controller指令。

<div ng-app="myApp" ng-controller="myCtrl">
    {{Hello+Name}}
</div>

<script>
    var app = angular.module("myApp", []);

    app.controller("myCtrl", function ($scope) {
        $scope.Hello = "你好!我是";
        $scope.Name = "Berry";
    });
</script>

新增一個 Directive

除了AngularJS內建的指令(Directive)外,也可以自行定義指令。

如下:

<div ng-app="myApp" hello></div>

<script>
var app = angular.module("myApp", []);
app.directive("hello", function() {
    return {
        template : "哈囉~"
    };
});
</script>

使用JavaScript檔案中的Modules 及 Controllers

通常,AngularJS的module以及controller會被放置在JavaScript檔中,再呼叫使用。

現在,將module與controller分別拆到JS檔中。

分別建立myAppmyCtrl兩個JS檔:

 myApp.js 內容:

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

 myCtrl.js 內容:

app.controller("myCtrl", function ($scope) {
    $scope.firstString = "Hello";
    $scope.secondString = "World";
});

 HTML的module以及controller改為引用JS:

<div ng-app="myApp" ng-controller="myCtrl">
     {{ firstString + " " + secondString }}
</div>

<script src="~/Scripts/myApp.js"></script>
<script src="~/Scripts/myCtrl.js"></script>

執行畫面:

 

Function與全域命名空間的影響

全域function容易被覆蓋或是影響,AngularJS module可以讓function在區域執行,避免被影響。

何時載入Library

AngularJS  Library的載入建議放置於<head>或是<body>的開頭,因為angular.module必須在Library載入後,才能進行編譯。

 

 END 

回目錄