AngularJS のモジュールは、アプリケーションを定義します。
モジュールは、アプリケーションのいろいろな部分のコンテナです。
モジュールは、アプリケーション・コントローラーのコンテナです。
コントローラは、常にモジュールに属します。
モジュールは、AngularJS 関数 angular.module
を使用して作成します。
<div ng-app="myApp">...</div>
<script>
var app = angular.module("myApp", []);
</script>
"myApp" パラメータは、アプリケーションを実行する HTML 要素を参照します。
これで、AngularJS アプリケーションに、コントローラ、ディレクティブ、フィルタなどを追加することができます。
アプリケーションにコントローラを追加し、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>
Try it Yourself »
このチュートリアルの後段で、コントローラについての詳細を学習します。
AngularJS は、アプリケーションに機能を追加するために使用できる、組込みディレクティブを持っています。
完全なリファレンスについては、 AngularJS ディレクティブ・リファレンスをご覧ください。
また、アプリケーションに独自のディレクティブを追加するために、モジュールを使用することもできます:
<div ng-app="myApp" w3-test-directive></div>
<script>
var app =
angular.module("myApp", []);
app.directive("w3TestDirective",
function() {
return {
template : "I was made in a directive constructor!"
};
});
</script>
Try it Yourself »
このチュートリアルの後段で、ディレクティブについての詳細を学習します。
AngularJS アプリケーションでは、モジュールとコントローラを JavaScript ファイルに入れることが一般的です。
この例では、"myApp.js" がアプリケーション・モジュール定義を含んでいる一方、"myCtrl.js" はコントローラを含んでいます:
<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="myApp"
ng-controller="myCtrl">
{{ firstName + " " + lastName }}
</div>
<script src="myApp.js"></script>
<script src="myCtrl.js"></script>
</body>
</html>
Try it Yourself »
var app = angular.module("myApp", []);
モジュール定義の [] パラメータは、依存するモジュールを定義するために使用できます。 |
[] パラメータを指定しないと、新しいモジュールを作成はしませんが、既存のものを検索します。 |
app.controller("myCtrl", function($scope) {
$scope.firstName = "John";
$scope.lastName= "Doe";
});
このチュートリアルにおける、これまでのすべての例では、グローバル関数を使用しています。
JavaScript では、グローバル関数を使用しないようにすべきです。グローバル関数は、 他のスクリプトで上書きまたは破壊することが簡単にできます。
AngularJS モジュールは、モジュールをすべてローカルな関数に保持することによって、この問題を低減しています。
HTML アプリケーションでは、スクリプトを <body>
要素の最後に配置するのが一般的ですが、
AngularJS ライブラリは <head>
の中か、<body>
の先頭にロードすることをお勧めします。
ライブラリがロードされた後でしか、angular.module
の呼び出しがコンパイルできないからです。
<!DOCTYPE html>
<html>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<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>
</body>
</html>
Try it Yourself »