AngularJS アプリ
今こそ、実際の AngularJS シングルページ Web アプリケーション(single page web application、SPA)を作成する時です。
AngularJS アプリケーション例
AngularJS について十分に学習しました。最初の AngularJS アプリケーションの作成を始めましょう:
私のノート
残り文字数:100
アプリケーションの説明
AngularJS 例
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.net/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:
2つの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=)。
1つのアプリに多くのコントローラを置くことができます。
アプリケーションファイル (my...App.js) はアプリケーションモデルコードを定義します。
1つ以上のコントローラファイル (my...Ctrl.js) はコントローラコードを定義します。
まとめ - どのように動作するのか?
ng-app ディレクティブはアプリのルート要素に配置されます。
シングルページ Web アプリケーション(single page web application、SPA)の場合、アプリのルートは通常 <html> 要素です。
1つ以上の ng-controller ディレクティブがアプリのコントローラを定義します。各コントローラには、: で定義された HTML 要素という独自のスコープがあります。
AngularJS は HTML の DOMContentLoaded イベントで自動的に開始します。ng-app ディレクティブが見つかると、AngularJS はディレクティブ内のモジュールを読み込み、ng-app をアプリのルートとしてコンパイルします。
アプリのルートはページ全体でも、ページの一部でも構いません。一部の場合は、コンパイルと実行がより速くなります。
その他の拡張機能