AngularJS
AngularJS はGoogleからJavaScriptのフレームワークです。Model-View-Controllerというdesign patternのアプリケーション用に使います。色んな機能を持ってますが、主にカスタムHTMLオブジェクトを作ることが出来るようにします。
基本
AngularJSのHTMLオブジェクトは皆ng-directiveというものです。基本的なng-directivesはng-app, ng-model,ng-bindとng-controllerです。これらだけを使えば、面白いアプリケーションを作ることが出来ます。
ng-app
Rootの要素(ようそ)です。一般的に、他のng-directivesはこのオブジェクトの中にあります。Auto-bootstrapの機能が持ってます。
ng-modelとng-bind
ng-modelとng-bindは皆HTMLオブジェクトとAngularを結合(けつごう)します、が方向は違います。
ng-modelはHTML→Angularで、
ng-bindはHTML←Angularです。
つまり、ng-modelのinputのバリューが変わると、スコープのバリューも変わるし、スコープのvarName
という変数が変わると、ng-bindでvaNname
にbindされたHTML要素が更新されます。
例
<div ng-app="">
<input type="text" ng-model="varName"/>
→ ng-model → scope → ng-bind →
<text ng-bind="varName"/>
</div>
ng-controller
Model-View-ControllerのControllerです。Javascriptのコードは特にそこで書きます。
例
<div ng-app="" ng-controller="exampleController">
<button type="text" ng-click="onButtonClicked()">ng-click button</button>
<br/>
Button clicked {{clickedTimes}} time(s).
</div>
function exampleController($scope) {
$scope.clickedTimes = 0;
$scope.onButtonClicked = function() {
$scope.clickedTimes++;
}
}
結果
{{clickedTimes}}
はexpressionです。ng-bindの省略(しょうりゃく)です。
カスタムng-directive
自分のng-directiveを作ることも出来ます。
例
<div ng-app="SprocketApp">
<sprocket-directive>
Directive contents
</sprocket-directive>
</div>
angular.module("SprocketApp", [])
.directive("sprocketDirective", function() {
return {
restrict: 'E',
replace: false,
link: function($scope, element, attrs) {
element.append("<div>Text added by the directive</div>")
}
};
});