簡単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

PPTX
AngularJSを浅めに紹介します
PDF
3分でわかるangular js
PPTX
エンタープライズ分野での実践AngularJS
PDF
そろそろ押さえておきたい AngularJSのセキュリティ
PPTX
Angular js はまりどころ
PDF
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
PDF
AngularJSについて
PPTX
AngularJSを触ってみた
AngularJSを浅めに紹介します
3分でわかるangular js
エンタープライズ分野での実践AngularJS
そろそろ押さえておきたい AngularJSのセキュリティ
Angular js はまりどころ
受託開発でのAngularJS - 第1回AngularJS 勉強会 at LIG
AngularJSについて
AngularJSを触ってみた

What's hot (20)

PPTX
AngularJS入門
PDF
AngularJSの高速化
PDF
React.js + Flux
PPTX
React を導入した フロントエンド開発
PPTX
Angular js開発事例
PDF
angular1脳で見るangular2
PDF
開発ライフサイクルから見たAngularJS
PPTX
さわってみようReact.js、AngularJS(1系、2系)
PPTX
Laravel Blade×vue.js 混在させる場合の注意点
PDF
AngularJS 概説
PDF
Enterprise x AngularJS
PDF
AngularJSで業務システムUI部品化
PDF
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
PDF
AngularJSでの非同期処理の話
PPTX
20160927 reactmeetup
PPT
ASP.NET MVC 1.0
PDF
エンタープライヤーのためのWeb Componentsハンズオン
PDF
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
PPTX
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
PPTX
JavaScript(AngularJS)で作る iOS・Androidアプリ開発ハンズオン
AngularJS入門
AngularJSの高速化
React.js + Flux
React を導入した フロントエンド開発
Angular js開発事例
angular1脳で見るangular2
開発ライフサイクルから見たAngularJS
さわってみようReact.js、AngularJS(1系、2系)
Laravel Blade×vue.js 混在させる場合の注意点
AngularJS 概説
Enterprise x AngularJS
AngularJSで業務システムUI部品化
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
AngularJSでの非同期処理の話
20160927 reactmeetup
ASP.NET MVC 1.0
エンタープライヤーのためのWeb Componentsハンズオン
コンポーネント指向による、Reactのベストプラクティスとバッドプラクティス
JavaScript(AngularJS・React.js)で作る iOS・Androidアプリハンズオン
JavaScript(AngularJS)で作る iOS・Androidアプリ開発ハンズオン
Ad

Similar to 簡単AngularJS(関西AngularJS勉強会) (20)

PPTX
Automatic api document generation 101
PDF
AngularJS で ハイスピードSI
PDF
AndroidでDIxAOP
PDF
APICのREST API入門
PPTX
Swagger jjug ccc 2018 spring
PDF
Alt01-LT
PPT
RICOH最終選考プレゼン資料
PDF
多分モダンなWebアプリ開発
PDF
DevOps を前提としたユーザー インターフェイスの構造解析
PDF
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
PDF
One-time Binding & $digest
PPTX
~初心者がこれから Web アプリの開発をするために~
PDF
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
PPTX
CordovaでAngularJSアプリ開発
PDF
Java/Androidセキュアコーディング
PDF
我が家のフロントエンド開発事情
PPTX
Visual Studio 2017 事はじめ
PDF
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
PPTX
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
PDF
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
Automatic api document generation 101
AngularJS で ハイスピードSI
AndroidでDIxAOP
APICのREST API入門
Swagger jjug ccc 2018 spring
Alt01-LT
RICOH最終選考プレゼン資料
多分モダンなWebアプリ開発
DevOps を前提としたユーザー インターフェイスの構造解析
AngularJS x Chrome Apps (2014.08.23 #gdgkobe event)
One-time Binding & $digest
~初心者がこれから Web アプリの開発をするために~
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
CordovaでAngularJSアプリ開発
Java/Androidセキュアコーディング
我が家のフロントエンド開発事情
Visual Studio 2017 事はじめ
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
OCHaCafe Season 2 #4 - Cloud Native時代のモダンJavaの世界
モバイル対応Ui部品を利用したレスポンシブwebアプリ開発
Ad

More from Takahiro Maki (6)

PPTX
ほぼ1人でAzureからGCPに移行した話
PPTX
Onsen UIでアプリケーション作ってみた
PDF
フロントエンドエンジニアがフルスタックエンジニアもどきになる話
PDF
最近流行りのビルドツールとは
PDF
WebComponentsとPolymer
PPTX
jspmを使ってES6を始めてみよう
ほぼ1人でAzureからGCPに移行した話
Onsen UIでアプリケーション作ってみた
フロントエンドエンジニアがフルスタックエンジニアもどきになる話
最近流行りのビルドツールとは
WebComponentsとPolymer
jspmを使ってES6を始めてみよう

簡単AngularJS(関西AngularJS勉強会)

Editor's Notes

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