SlideShare a Scribd company logo
1 of 49
Download to read offline
AngularJS のきほんのきほん
PASONA TECH AnguarJS セミナー
2014/06/18
{{ About me }}
AngularJS Japan User Group 管理人
html5j Web先端技術味見部 部長
金井 健一
フリーランス
フロントエンド方面のお仕事
can_i_do_web ( きゃない )
facebook/can.i.do.web
{{ Agenda }}
• Basic
• Validation
• with jQuery
• Learn more ...
• Conclusion ( links )
https://angularjs.org/
{{ Why it s called AngularJS ? }}
Because HTML has Angular brackets
{{ Why it s called AngularJS ? }}
<html>
{{ MVW? }}
Model View Whatever
{{ MVW? }}
MVC とか MVVM とか
どうでもいいから
とにかくコード書こうぜ!
{{ Basic }}
{{ Basic }}
http://www.google.co.jp/trends
{{ Basic }}
• Unobtrusive data binding
• HTML as the template.
• Reusable components -- in HTML!
• Views and Routes.
• Tests and Testability.
{{ Basic }}
• 控えめなデータバインディング
• テンプレートとしてのHTML
• 再利用可能なコンポーネント
• Views とルーティング
• テストとその可用性
{{ Basic }}
• Two Way Binding ( ng-model )
• ng-bind = {{ }}
• ng-init
• ng-show/hide
• ng-repeat
• filter
{{ Basic }}
Filter
• date
• limitTo
• orderBy
この3つが特に便利でオススメ!
Demo
{{ Validation }}
• Form名.input名.$valid
• Form名.input名.$invalid
• Form名.input名.$error
•  この中に個別のvalidationのチェック状況
ex)  xxx.yyy.$error = { minlength: true }
• Form名.$valid
• Form名.$invalid
{{ Validation }}
全く意味がわかりませんよね?
(またDemoします)
{{ Validation }}
便利ですので
積極的に使っていきましょう
Demo 2
{{ with jQuery }}
{{ with jQuery }}
{{ with jQuery }}
jQuery を利用したライブラリや
プラグインとは相性が悪そう…
{{ with jQuery }}
極力つかわない方が
トラブルに巻き込まれにくい!
{{ Learn more ... }}
http://dotinstall.com/lessons/basic_angularjs
{{ Learn more ... }}
https://egghead.io/
{{ Learn more ... }}
http://campus.codeschool.com/courses/shaping-up-with-angular-js/intro
{{ Learn more ... }}
{{ Conclusion }}
参考サイト紹介
{{ Conclusion }}
AngularJS Batarang
Chrome ウェブストア からダウンロード
{{ Conclusion }}
AngularJS Ninja
http://angularjsninja.com/
{{ Conclusion }}
js STUDIO
http://js.studio-kingdom.com/angularjs
{{ Conclusion }}
Qiita
http://qiita.com/tags/angularjs
{{ Conclusion }}
Onsen UI
http://onsenui.io/
{{ Conclusion }}
ionic
http://ionicframework.com/
{{ Conclusion }}
AngularJS Japan User Group #ng_jp
https://groups.google.com/forum/#!forum/angularjs-jp
Thank you.
補足
{{ ハンズオンで使用したコード }}
<!DOCTYPE html>
<html lang="ja" ng-app>
<head>
<meta charset="UTF-8">
<script src="./angular.min.js"></script>
</head>
<body>
{{ 1 + 2 }}
</body>
</html>
	
AngularJS の利用宣言	
AngularJS の読み込み	
ちゃんと読み込めているか確認
{{ ハンズオンで使用したコード }}
<body>
<form name="demoForm" novalidate>
<input type="text" ng-model="demoId” name="demoId">
<input type="text" ng-model="demoPassword”
name="demoPassword” >
<input type="submit" value="login">
<p>{{ demoId }}</p>
</form>
</body>
ブラウザのvalidationを
OFF	
ng-modelの定義	
データバインディングを確認
{{ ハンズオンで使用したコード }}
<style>
input.ng-invalid.ng-dirty{ border-color: red; }
</style>
<form name="demoForm" novalidate>
<input type="text" ng-model="id" name="demoId" required ng-
minlength=“4” ng-maxlength=“8”>
<input type="text" ng-model="Password" name="demoPassword”
ng-parttern="/^[0-9]{5,10}$/">
<input type="submit" value="login">
</form>
バリデーションの定義
{{ ハンズオンで使用したコード }}
<form name="demoForm" novalidate>
<input type="text" ng-model="demoId"
name="demoId" required ng-minlength="4" ng-maxlength="8">
<input type="text" ng-model="demoPassword"
name="demoPassword" ng-pattern="/^[0-9]{5,10}$/">
<input type="submit" value="login">
<p ng-show="demoForm.demoId.$error.required && demoForm.demoId.
$dirty">demoId の required がエラー時</p>
<p ng-show="demoForm.demoId.$error.minlength">demoId の min-
length(4文字)のエラー時</p>
<p ng-show="demoForm.demoId.$error.maxlength">demoId の max-
length(8文字)のエラー時</p>
</form>
エラーメッセージの出し分け
{{ ハンズオンで使用したコード }}
<form name="demoForm" novalidate>
<input type="text" ng-model="demoId" name="demoId" required ng-
minlength="4" ng-maxlength="8">
<input type="text" ng-model="demoPassword" name="demoPassword"
ng-pattern="/^[0-9]{5,10}$/">
<input type="submit" value="login">
<p ng-show="demoForm.$invalid">form のどこかに1つでもエラーがある時
</p>
</form> エラーメッセージの出し分け
{{ ハンズオンで使用したコード }}
<form name="demoForm" novalidate>
<input type="text" ng-model="demoId" name="demoId" required ng-
minlength="4" ng-maxlength="8">
<input type="text" ng-model="demoPassword" name="demoPassword"
ng-pattern="/^[0-9]{5,10}$/">
<input type="submit" value="login" ng-disabled="demoForm.$invalid">
</form>
全てのバリデーションチェックが
OKになるまで押せない
{{ ハンズオンで使用したコード }}
<body>
<div ng-init="demoData=[
'abcde123', 'defg234', 'hijk456', 'jklm246'
]"></div>
<ul>
<li ng-repeat="data in demoData">{{ data }}</li>
</ul>
</body>
初期値の定義	
繰り返し処理
{{ ハンズオンで使用したコード }}
<body>
<div ng-init="demoData=[
'abcde123', 'defg234', 'hijk456', 'jklm246'
]"></div>
<input type="text" ng-model="search">
<ul>
<li ng-repeat="data in demoData | filter:search">{{ data }}</li>
</ul>
</body>
検索ワード	
絞り込み機能
{{ ハンズオンで使用したコード }}
<body>
<div ng-init="demoData=[
'abcde123', 'defg234', 'hijk456', 'jklm246'
]"></div>
<input type="text" ng-model="search">
<ul>
<li ng-repeat="data in demoData | limitTo:2 | filter:search">{{ data }}</li>
</ul>
</body>
2件のみ表示
{{ ハンズオンで使用したコード }}
<body>
<div ng-init="demoData=[
{ name: 'abcde123', age : 30},
{ name: 'defg234', age : 31},
{ name: 'hijk456', age : 31},
{ name: 'jklm246', age : 32}
]"></div>
<input type="text" ng-model="search">
<ul>
<li ng-repeat="data in demoData | filter:search">{{ data.name }} -
{{ data.age }}</li>
</ul>
</body>
{{ ハンズオンで使用したコード }}
<body>
<div ng-init="demoData=[
{ name: 'abcde123', age : 30},
{ name: 'defg234', age : 31},
{ name: 'hijk456', age : 31},
{ name: 'jklm246', age : 32}
]"></div>
<input type="text" ng-model="search.name">
<ul>
<li ng-repeat="data in demoData | filter:search">{{ data.name }} -
{{ data.age }}</li>
</ul>
</body>
Nameのみ検索可能

More Related Content

Viewers also liked

วิธีการสอนตามระเบียบขั้นตอนทางวิทยาศาสตร์
วิธีการสอนตามระเบียบขั้นตอนทางวิทยาศาสตร์วิธีการสอนตามระเบียบขั้นตอนทางวิทยาศาสตร์
วิธีการสอนตามระเบียบขั้นตอนทางวิทยาศาสตร์เพ็ญพักตร์ ฉวีวงค์
 
друге життя
друге життядруге життя
друге життяAndrey Hrutba
 
риб бизнес лекция укр
риб бизнес лекция укрриб бизнес лекция укр
риб бизнес лекция укрAndrey Hrutba
 
TRiO SSS Enrollment Orientation
TRiO SSS Enrollment Orientation TRiO SSS Enrollment Orientation
TRiO SSS Enrollment Orientation fmorado
 
บุคคลสำคัญของบางกอก
บุคคลสำคัญของบางกอกบุคคลสำคัญของบางกอก
บุคคลสำคัญของบางกอกnearary
 
บุคคลสำคัญของบางกอก
บุคคลสำคัญของบางกอกบุคคลสำคัญของบางกอก
บุคคลสำคัญของบางกอกnearary
 
Grade 4 September 2012 newsletter
Grade 4 September 2012 newsletterGrade 4 September 2012 newsletter
Grade 4 September 2012 newsletteraprilrism1
 
Dec. 2012 newsletter final
Dec. 2012 newsletter finalDec. 2012 newsletter final
Dec. 2012 newsletter finalaprilrism1
 
HTML5とか勉強会#48 ionic
HTML5とか勉強会#48 ionicHTML5とか勉強会#48 ionic
HTML5とか勉強会#48 ionicKenichi Kanai
 

Viewers also liked (11)

วิธีการสอนตามระเบียบขั้นตอนทางวิทยาศาสตร์
วิธีการสอนตามระเบียบขั้นตอนทางวิทยาศาสตร์วิธีการสอนตามระเบียบขั้นตอนทางวิทยาศาสตร์
วิธีการสอนตามระเบียบขั้นตอนทางวิทยาศาสตร์
 
друге життя
друге життядруге життя
друге життя
 
риб бизнес лекция укр
риб бизнес лекция укрриб бизнес лекция укр
риб бизнес лекция укр
 
Druge_jittya
Druge_jittyaDruge_jittya
Druge_jittya
 
TRiO SSS Enrollment Orientation
TRiO SSS Enrollment Orientation TRiO SSS Enrollment Orientation
TRiO SSS Enrollment Orientation
 
บุคคลสำคัญของบางกอก
บุคคลสำคัญของบางกอกบุคคลสำคัญของบางกอก
บุคคลสำคัญของบางกอก
 
Animated1
Animated1Animated1
Animated1
 
บุคคลสำคัญของบางกอก
บุคคลสำคัญของบางกอกบุคคลสำคัญของบางกอก
บุคคลสำคัญของบางกอก
 
Grade 4 September 2012 newsletter
Grade 4 September 2012 newsletterGrade 4 September 2012 newsletter
Grade 4 September 2012 newsletter
 
Dec. 2012 newsletter final
Dec. 2012 newsletter finalDec. 2012 newsletter final
Dec. 2012 newsletter final
 
HTML5とか勉強会#48 ionic
HTML5とか勉強会#48 ionicHTML5とか勉強会#48 ionic
HTML5とか勉強会#48 ionic
 

Similar to 初学者向けセミナー資料

CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиковCodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиковCodeFest
 
Chico-UI en escuela DaVinci
Chico-UI en escuela DaVinciChico-UI en escuela DaVinci
Chico-UI en escuela DaVinciNatan Santolo
 
Aspetos gerais de desenvolvimento web.
Aspetos gerais de desenvolvimento web.Aspetos gerais de desenvolvimento web.
Aspetos gerais de desenvolvimento web.Corcioli
 
Core rest edgarsilva_v1
Core rest edgarsilva_v1Core rest edgarsilva_v1
Core rest edgarsilva_v1Edgar Silva
 
Une application en une heure avec symfony - Collège de Mainsonneuve
Une application en une heure avec symfony - Collège de MainsonneuveUne application en une heure avec symfony - Collège de Mainsonneuve
Une application en une heure avec symfony - Collège de MainsonneuvePhilippe Gamache
 
ADO.NET Entity Framework 4
ADO.NET Entity Framework 4ADO.NET Entity Framework 4
ADO.NET Entity Framework 4Raffaele Fanizzi
 

Similar to 初学者向けセミナー資料 (8)

CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиковCodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
 
Chico-UI en escuela DaVinci
Chico-UI en escuela DaVinciChico-UI en escuela DaVinci
Chico-UI en escuela DaVinci
 
MS Swit 2010
MS Swit 2010MS Swit 2010
MS Swit 2010
 
BDD no mundo real
BDD no mundo realBDD no mundo real
BDD no mundo real
 
Aspetos gerais de desenvolvimento web.
Aspetos gerais de desenvolvimento web.Aspetos gerais de desenvolvimento web.
Aspetos gerais de desenvolvimento web.
 
Core rest edgarsilva_v1
Core rest edgarsilva_v1Core rest edgarsilva_v1
Core rest edgarsilva_v1
 
Une application en une heure avec symfony - Collège de Mainsonneuve
Une application en une heure avec symfony - Collège de MainsonneuveUne application en une heure avec symfony - Collège de Mainsonneuve
Une application en une heure avec symfony - Collège de Mainsonneuve
 
ADO.NET Entity Framework 4
ADO.NET Entity Framework 4ADO.NET Entity Framework 4
ADO.NET Entity Framework 4
 

More from Kenichi Kanai

techfeed_ng-japan2019
techfeed_ng-japan2019techfeed_ng-japan2019
techfeed_ng-japan2019Kenichi Kanai
 
ng-japan2019_techfeed_LT
ng-japan2019_techfeed_LTng-japan2019_techfeed_LT
ng-japan2019_techfeed_LTKenichi Kanai
 
はじめてのAngular2
はじめてのAngular2はじめてのAngular2
はじめてのAngular2Kenichi Kanai
 
New Features in Angular 1.5
New Features in Angular 1.5New Features in Angular 1.5
New Features in Angular 1.5Kenichi Kanai
 
はじめてのAngular2
はじめてのAngular2はじめてのAngular2
はじめてのAngular2Kenichi Kanai
 
Web先端技術味見部
Web先端技術味見部Web先端技術味見部
Web先端技術味見部Kenichi Kanai
 
angularJS in 10ish minutes
angularJS in 10ish minutesangularJS in 10ish minutes
angularJS in 10ish minutesKenichi Kanai
 
HTML5 ビギナーのための AngularJS
HTML5 ビギナーのための AngularJSHTML5 ビギナーのための AngularJS
HTML5 ビギナーのための AngularJSKenichi Kanai
 
HTML5入門 for 頭がヤバい人向け
HTML5入門 for 頭がヤバい人向けHTML5入門 for 頭がヤバい人向け
HTML5入門 for 頭がヤバい人向けKenichi Kanai
 
みんなが調べないJS調べてみた JSオジサン#2
みんなが調べないJS調べてみた JSオジサン#2みんなが調べないJS調べてみた JSオジサン#2
みんなが調べないJS調べてみた JSオジサン#2Kenichi Kanai
 
Enterprise x AngularJS
Enterprise x AngularJSEnterprise x AngularJS
Enterprise x AngularJSKenichi Kanai
 

More from Kenichi Kanai (20)

techfeed_ng-japan2019
techfeed_ng-japan2019techfeed_ng-japan2019
techfeed_ng-japan2019
 
ng-japan2019_techfeed_LT
ng-japan2019_techfeed_LTng-japan2019_techfeed_LT
ng-japan2019_techfeed_LT
 
Angular CLI
Angular CLIAngular CLI
Angular CLI
 
はじめてのAngular2
はじめてのAngular2はじめてのAngular2
はじめてのAngular2
 
pick up ng-conf
pick up ng-confpick up ng-conf
pick up ng-conf
 
Angular1.5.5
Angular1.5.5Angular1.5.5
Angular1.5.5
 
New Features in Angular 1.5
New Features in Angular 1.5New Features in Angular 1.5
New Features in Angular 1.5
 
ngTeratail
ngTeratailngTeratail
ngTeratail
 
はじめてのAngular2
はじめてのAngular2はじめてのAngular2
はじめてのAngular2
 
Angular#Kanazawa
Angular#KanazawaAngular#Kanazawa
Angular#Kanazawa
 
Web先端技術味見部
Web先端技術味見部Web先端技術味見部
Web先端技術味見部
 
Angular2
Angular2Angular2
Angular2
 
Angular1&2
Angular1&2Angular1&2
Angular1&2
 
angularJS in 10ish minutes
angularJS in 10ish minutesangularJS in 10ish minutes
angularJS in 10ish minutes
 
HTML5 ビギナーのための AngularJS
HTML5 ビギナーのための AngularJSHTML5 ビギナーのための AngularJS
HTML5 ビギナーのための AngularJS
 
HTML5入門 for 頭がヤバい人向け
HTML5入門 for 頭がヤバい人向けHTML5入門 for 頭がヤバい人向け
HTML5入門 for 頭がヤバい人向け
 
みんなが調べないJS調べてみた JSオジサン#2
みんなが調べないJS調べてみた JSオジサン#2みんなが調べないJS調べてみた JSオジサン#2
みんなが調べないJS調べてみた JSオジサン#2
 
Enterprise x AngularJS
Enterprise x AngularJSEnterprise x AngularJS
Enterprise x AngularJS
 
味見部紹介 LT
味見部紹介 LT味見部紹介 LT
味見部紹介 LT
 
Ng mtg#3
Ng mtg#3Ng mtg#3
Ng mtg#3
 

初学者向けセミナー資料