狠狠撸

狠狠撸Share a Scribd company logo
簡単AngularJS
5/23(土)【初心者向け】関西AngularJS 勉強会 1
牧 昂拡(マキ タカヒロ)
株式会社グラッドキューブ エンジニア
Webサイト解析ASP「SiTest」の開発をしています
自己紹介
2
本日の内容
1.DI(依存性注入)とは?
2.Directiveとは?
3.NoJSで簡単フォームバリデーション
3
1.DI(依存性注入)とは?
依存性の注入(英: Dependency injection)とは、
コンポーネント間の依存関係をプログラムのソースコード
から排除し、外部の設定ファイルなどで注入できるように
するソフトウェアパターンである(Wikipediaより)
4
なるほど、わからん
5
AngularJSではどう書くの?
(function(){
var app;
app = angular.module("MyApp");
app.controller(“HogeController",
function($scope){
$scope.initialize = function(){
console.log("hoge!");
};
}
);
}).call(this);
6
JSを難読化する場合は?
(function(){
var app;
app = angular.module("MyApp");
app.controller("FugaController", [“$scope",
function($scope){
$scope.initialize = function(){
console.log("fuga!");
};
}
]);
}).call(this);
7
でもめんどくさいよね
そんなあなたに「ng-annotate」(ngmin)
npmからインストールできます
DI部分を文字列宣言しなくても
自動的に変換してくれる便利ツール
(https://github.com/olov/ng-annotate) 8
DIまとめ
DIは宣言したオブジェクトを
Angularが上手いこと渡してやる機能!
文字列でオブジェクトを指定する
記法を推奨!
めんどくさかったらng-annotateを使え!
9
2.Directiveとは?
双方向バインディングを実現するため
のコアな機能
ModelとViewを繋ぐ役割
DOMの振る舞いを自由に作れる
CustomDirective最強
10
超便利Directive
ngApp - これがないと始まらない
angular.bootstrapすれば一応なくても使える
ngBind - バインディングするなら基本はこれ
ngModel - inputで大活躍、
Viewの変更が随時Modelのオブジェクトに反映される
ngClick - クリックした時に関数実行したいならこれ
ngShow(ngHide) - 式を評価してtrueなら表示(非表示)してくれる
動的に表示したい時に便利
ngInclude - パスで指定したテンプレートを動的に読み込む
11
// CustomDirective
(function(){
var app;
app = angular.module("MyApp");
app.directive("binding", [function(){
return {
restrict: "C",
scope: true,
template: "<span>{{obj()}}</span>",
controller: ["$scope", "$element", “$attrs",
function($scope, $element, $attrs){
$scope.obj = function(){
return "Hoge!";
};
}
]
};
}]);
}).call(this); 12
3.NoJSで作る
簡単フォームバリデーション
HTML(Template)だけで作れます!
AngularJSを読み込むだけ!
工夫すれば確認画面まで作れる!
JSを書くともっと幅が広がる!
13
ご静聴ありがとうございました!
14

More Related Content

简単础苍驳耻濒补谤闯厂(関西础苍驳耻濒补谤闯厂勉强会)

Editor's Notes

  1. 牧昂拡と申します 株式会社グラッドキューブでエンジニアやっていて Webサイト解析ASP「SiTest」の開発をしています そのSiTestではAngularJSを採用しています
  2. 本日の内容としては3点 DIとは? Directiveとは? JSを使わずにフォームバリデーション作れますよ の3本立てです
  3. まず顿滨とは
  4. なるほど、よくわからんとなるわけです じゃあ、AngularJSではどうなってるのか
  5. こんな感じに書きます コントローラのコールバックで$scopeという引数をとっているわけですが、 これをAngularが上手く解釈して$socpeオブジェクトをいれてくれるわけです すごいよね、Angular ただしこの書き方には欠点があって、JSを難読化するとダメになる じゃあどうすればいいか
  6. このように文字列として定義してやればいいわけです 文字列は難読化しても変わらないので、それを利用して DIの宣言をしているわけです
  7. ただ、ネイティブでこんなクソ長いコード書いてたら いやになってきますよね? そんなあなたにngminというnpmパッケージ DI部分を文字列宣言しなくても自動的に変換してくれます
  8. 顿滨のまとめです
  9. 2つ目、Directiveとはなにか Angularの売りでもある双方向バインディングを実現するためのコアな機能 ModelとViewをつなぐ役割をしています また、CustomDirectiveを定義してDOMの振る舞いを自由に作れます CustomDirective最強
  10. Angularが最初から用意してくれているDirectiveの中で 便利そうなやつを紹介します
  11. 颁耻蝉辞迟尘顿颈谤别肠迟颈惫别を作る场合はこのように作成します
  12. 3つ目、JS無しで簡単フォームバリデーションが作れます! 用意するのはHTMLだけ Angularは読み込みましょう 頑張れば確認画面も作れちゃいます JSを書くと更に幅が広がります