AngularJS - タイマーアプリケーション
こんにちは、未来のプログラマーさんたち!今日は、AngularJSを使ってタイマーアプリケーションを作成する興味深い旅に一緒に出発します。コードを一行も書いたことがない方も心配しないでください。この冒険の案内役として、あなたのフレンドリーなガイドを務め、ステップバイステップで説明します。では、腕をまくって潜りましょう!
AngularJSとは?
タイマーを作成する前に、まずAngularJSとは何かを理解しましょう。家を建てていると考えてください。AngularJSは、壁や屋根、そしてそれらの間にあるすべてを構築するのを簡単にする魔法の工具箱のようなものです。これは、労力を減らして動的なWebアプリケーションを作成する手助けをしてくれるJavaScriptフレームワークです。
プロジェクトの設定
ステップ1: AngularJSのインクルード
まず第一に、プロジェクトにAngularJSをインクルードする必要があります。これは、超賢い友達を家業の手伝いに呼ぶようなものです。HTMLファイルに以下の一行のコードを追加します:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
この行は、私たちのウェブページにGoogleのサーバーからAngularJSを読み込むように指示します。先ほど話した魔法の工具箱を開くようなものです。
ステップ2: HTML構造の作成
次に、タイマーアプリケーションの基本的な構造を作成しましょう。これは、家の青写真を描くようなものです:
<!DOCTYPE html>
<html ng-app="timerApp">
<head>
<title>AngularJS タイマー</title>
</head>
<body ng-controller="TimerController">
<h1>AngularJS タイマー</h1>
<p>時間: {{time}}</p>
<button ng-click="startTimer()">開始</button>
<button ng-click="stopTimer()">停止</button>
<button ng-click="resetTimer()">リセット</button>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
<script src="app.js"></script>
</body>
</html>
これを分解しましょう:
-
ng-app="timerApp"
: これはAngularJSに、私たちのHTMLドキュメント全体が「timerApp」という名前のAngularアプリケーションであることを伝えます。 -
ng-controller="TimerController"
: これは、<body>
要素にコントローラー(すぐに作成します)を適用します。 -
{{time}}
: これは、タイマーが現在の時間を表示する場所です。 - ボタンには
ng-click
属性があり、クリックされたときに関数をトリガーします。
AngularJSアプリケーションの作成
ステップ3: JavaScriptの設定
次に、私たちのapp.js
ファイルを作成しましょう。ここでは魔法が起こります!
var app = angular.module('timerApp', []);
app.controller('TimerController', function($scope, $interval) {
$scope.time = 0;
var timer;
$scope.startTimer = function() {
if (!timer) {
timer = $interval(function() {
$scope.time++;
}, 1000);
}
};
$scope.stopTimer = function() {
if (timer) {
$interval.cancel(timer);
timer = null;
}
};
$scope.resetTimer = function() {
$scope.stopTimer();
$scope.time = 0;
};
});
これはすごい!ステップバイステップで分解しましょう:
-
var app = angular.module('timerApp', []);
: これは私たちのAngularJSアプリケーションを作成します。 -
app.controller('TimerController', function($scope, $interval) { ... });
: これはコントローラーを定義します。アプリケーションの脳のようなものです。 -
$scope.time = 0;
: これはタイマーを0に初期化します。 -
startTimer
、stopTimer
、resetTimer
関数:
-
startTimer
は、$intervalを使って1秒ごとに$scope.time
を増やします。 -
stopTimer
は、停止ボタンを押したときにインターバルをキャンセルします。 -
resetTimer
は、タイマーを停止し、時間を0に戻します。
すべてがどのように動作するか
ブラウザでHTMLファイルを開くと、AngularJSが動作を開始します。ng-app
とng-controller
ディレクティブを見つけると、JavaScriptコードを使ってページを制御します。
HTMLの{{time}}
は、JavaScriptの$scope.time
が変更されるたびに自動的に更新されます。これは二方向データバインディングと呼ばれ、AngularJSの最も素晴らしい機能の其一です!
ボタンをクリックすると、対応するコントローラー関数が呼び出され、タイマーが必要に応じて更新されます。
高級概念
基本的なことを理解したところで、使用したいくつかの高级概念を見てみましょう:
依存性注入
$scope
と$interval
がコントローラー関数に見えることに気づいたかもしれません。これらはAngularJSが「注入」する依存性です。コードで使う特別なツールのようなものです。
サービス
$interval
はAngularJSのサービスです。サービスは特定のタスクをこなす再利用可能なコードの断片です。この場合、$interval
は指定された間隔で繰り返し関数を実行する手助けをしてくれます。
メソッドテーブル
タイマーアプリケーションで使用したメソッドのテーブルです:
メソッド | 説明 |
---|---|
startTimer() | タイマーを開始し、1秒ごとに時間を増やします |
stopTimer() | タイマーを停止します |
resetTimer() | タイマーを停止し、時間を0に戻します |
結論
おめでとうございます!あなたは初めてのAngularJSアプリケーションを作成しました。私たちは多くのことをカバーしました。基本的なHTML構造からAngularJSのコントローラーやサービスまでです。コードを学ぶことは新しい言語を学ぶのと同じです。練習と忍耐が必要です。すぐにすべてが理解できるわけではありません。コードを試してみて、楽しみながら学びましょう!
このまとめを締めくくるにあたり、私の最初のコ딩クラスで生徒が尋ねたことを思い出しました。「いつになったら本物のプログラマーになるのかしら?」と。私が微笑んで答えたのは、「Googleがプログラマーの最高の友達になる瞬間です!」です。ですから、答えを探すために検索を恐れず、コードを試し、最も重要なのは、学びの過程を楽しむことです!
未来のAngularJSマスターたち、快適なコーディングをお楽しみください!
Credits: Image by storyset