AngularJS - コントローラー:ビギナーズガイド
こんにちは、Web開発者の卵さんたち!今日は、AngularJSのコントローラーの世界に飛び込みます。プログラミングが初めてであっても心配しないでください。この旅の親切なガイドとして、ステップバイステップですべてを説明します。コーヒーを片手に、始めましょう!
AngularJSのコントローラーとは?
コードに飛び込む前に、AngularJSのコントローラーが何かを理解しましょう。コントローラーは、アプリケーションの脳と考えてください。データとウェブページの行動を管理する責任があります。交通コントローラーが車の流れを管理するように、AngularJSのコントローラーはアプリケーション内のデータの流れを管理します。
コントローラーの役割
AngularJSのコントローラーはいくつかの重要な目的を果たします:
-
$scope
オブジェクトのデータを初期化します。 -
$scope
オブジェクトに行動を追加します。 - ビュー(ユーザーが見るもの)とモデル(データ)のブリッジとして機能します。
それでは、AngularJSでコントローラーを作成し、使用する方法を見てみましょう。
最初のAngularJSコントローラー
簡単な例から始めてみましょう。
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>私の最初のAngularJSコントローラー</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
</head>
<body>
<div ng-controller="MyFirstController">
<h2>{{ greeting }}</h2>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('MyFirstController', function($scope) {
$scope.greeting = "Hello, AngularJS!";
});
</script>
</body>
</html>
これを分解すると:
-
ng-app="myApp"
を使用してAngularJSアプリケーションを定義します。 -
ng-controller
を使用してMyFirstController
というコントローラーを作成します。 - JavaScriptでコントローラーを定義し、
$scope
にgreeting
プロパティを設定します。 - HTMLで
{{ greeting }}
を使用してgreeting
の値を表示します。
このコードを実行すると、「Hello, AngularJS!」がページに表示されます。ワクワクしますよね?
コントローラーに行動を追加する
コントローラーはデータを表示するだけでなく、アプリケーションに行動を追加することもできます。もっとインタラクティブな例を作成してみましょう:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>インタラクティブなAngularJSコントローラー</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
</head>
<body>
<div ng-controller="CounterController">
<h2>Count: {{ count }}</h2>
<button ng-click="increment()">インクリメント</button>
<button ng-click="decrement()">デクリメント</button>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('CounterController', function($scope) {
$scope.count = 0;
$scope.increment = function() {
$scope.count++;
};
$scope.decrement = function() {
$scope.count--;
};
});
</script>
</body>
</html>
この例では:
-
CounterController
を作成し、count
変数を初期化します。 -
increment()
とdecrement()
という2つの関数を定義します。 -
ng-click
を使用して、これらの関数をボタンクリックにバインドします。
今、\"インクリメント\"ボタンをクリックすると、カウントが増え、\"デクリメント\"ボタンをクリックすると、カウントが減ります。ウェブページに小さな計算機があるようなものですね!
フォームとの連携
コントローラーはフォームとの連携に特に有用です。ユーザーに挨拶する簡単なフォームを作成してみましょう:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>AngularJSフォームコントローラー</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script>
</head>
<body>
<div ng-controller="GreetingController">
<form ng-submit="greet()">
<input type="text" ng-model="name" placeholder="名前を入力してください">
<button type="submit">私に挨拶して!</button>
</form>
<h2>{{ greeting }}</h2>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('GreetingController', function($scope) {
$scope.name = '';
$scope.greeting = '';
$scope.greet = function() {
if ($scope.name) {
$scope.greeting = 'Hello, ' + $scope.name + '!';
} else {
$scope.greeting = '名前を入力してください。';
}
};
});
</script>
</body>
</html>
ここで起こっていることは:
-
ng-model="name"
を使用して、入力フィールドをコントローラーのname
プロパティにバインドします。 - フォームが提交されると
greet()
関数が呼び出されます。 - 名前が入力されている場合、パーソナライズされた挨拶を作成します。それ以外の場合は、名前を入力するよう指示します。
この例は、コントローラーがユーザー入力を処理し、ビューを更新する方法を示しています。
コントローラーメソッド
ここで使用した主要なメソッドをまとめます:
メソッド | 説明 |
---|---|
$scope.variableName |
ビューでアクセスできる変数を定義する |
$scope.functionName = function() {...} |
ビューから呼び出せる関数を定義する |
ng-click="functionName()" |
要素がクリックされたときに関数を呼び出す |
ng-model="variableName" |
入力フィールドをコントローラーの変数にバインドする |
ng-submit="functionName()" |
フォームが提交されたときに関数を呼び出す |
結論
おめでとうございます!AngularJSコントローラーの世界への初歩を踏み出しました。コントローラーの作成、行動の追加、フォームとの連携をカバーしました。実践はがんばるに限ります。ですので、以下のチャレンジに挑戦してください:簡単なタスクリストアプリケーションを作成してみてください。まずはアイテムの追加から始めて、完了マークの追加やアイテムの削除などの機能を実装してみてください。
AngularJSの旅を続ける中で、コントローラーは氷山の一角に過ぎません。サービスやディレクティブなど、さらに多くのことを探索することができます。でも今は、自分を褒めてください。AngularJSのエキスパートへの道を進んでいます!
ハッピーコーディング、そして覚えておいてください:プログラミングの世界では、すべてのエラーは新しいことを学ぶ機会です!
Credits: Image by storyset