AngularJS コントローラー
AngularJS コントローラー制御AngularJS アプリケーションのデータ。
AngularJS コントローラーは通常のJavaScript オブジェクト。
AngularJS コントローラー
AngularJS アプリケーションはコントローラーによって制御されます。
ng-controllerディレクティブはアプリケーションコントローラーを定義します。
コントローラーはJavaScript オブジェクト、標準の JavaScriptオブジェクトのコンストラクターによって作成されます。
AngularJS 例
名:<input type="text" ng-model="firstName"><br>
姓:<input type="text" ng-model="lastName"><br>
<br>
氏名:{{firstName + " " + lastName}}
</div>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});
</script>
試してみる »
アプリケーションの解析:
AngularJS アプリケーションはng-app定義されます。アプリケーションは <div> 内で実行されます。
ng-controller="myCtrl"属性は AngularJS ディレクティブです。コントローラーを定義するために使用されます。
myCtrl関数は JavaScript 関数です。
AngularJS は$scopeオブジェクトを使用してコントローラーを呼び出します。
AngularJS では、$scope はアプリケーションオブジェクト(アプリケーションの変数や関数に属する)です。
コントローラーの$scope(スコープ、制御範囲に相当)AngularJS Model(モデル)を保存するために使用されるオブジェクト。
コントローラーはスコープ内に2つのプロパティを作成します。firstNameとlastName)。
ng-modelディレクティブは入力フィールドをコントローラーのプロパティ(firstName と lastName)にバインドします。
コントローラーのメソッド
上記の例は、lastName と firstName という2つのプロパティを持つコントローラーオブジェクトを示しています。
コントローラーはメソッド(変数や関数)を持つこともできます:
AngularJS 例
名:<input type="text" ng-model="firstName"><br>
姓:<input type="text" ng-model="lastName"><br>
<br>
氏名:{{fullName()}}
</div>
<script>
var app = angular.module('myApp', []);
app.controller('personCtrl', function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
$scope.fullName = function() {
return $scope.firstName + " " + $scope.lastName;
}
});
</script>
試してみる »
外部ファイル内のコントローラー
大規模なアプリケーションでは、通常コントローラーは外部ファイルに格納されます。
必要なのは、<script> タグ内のコードを「...」という名前personController.jsの外部ファイルにコピーすればよいのです。
AngularJS 例
First Name: <input type="text" ng-model="firstName"><br>
Last Name: <input type="text" ng-model="lastName"><br>
<br>
Full Name: {{firstName + " " + lastName}}
</div>
<script src="personController.js"></script>
試してみる »
その他の例
次の例では、新しいコントローラーファイルを作成します:
ファイルを「...」という名前で保存します:namesController.js:
次に、アプリケーションでコントローラーファイルを使用します:
AngularJS 例
<ul>
<li ng-repeat="x in names">
{{ x.name + ', ' + x.country }}
</li>
</ul>
</div>
<script src="namesController.js"></script>
試してみる »