Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Angular JS Introduction
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Dhyego Fernando
May 06, 2015
Technology
58
0
Share
Angular JS Introduction
Slides for AngularJS Introduction talk presented by me.
Dhyego Fernando
May 06, 2015
More Decks by Dhyego Fernando
See All by Dhyego Fernando
Web Components with Polymer (extra Polymer 2.0)
dhyegofernando
0
52
Introduction to Angular 2
dhyegofernando
0
66
Modular Angular JS
dhyegofernando
0
39
Other Decks in Technology
See All in Technology
GoとSIMDとWasmの今。
askua
3
460
製造業のクラウド活用最適解〜AI,DXを加速するデータ基盤の作り方〜
hamadakoji
0
260
【Gen-AX】20260530開催_JJUG CCC 2026 Spring
genax
0
310
エンジニアは生成AIと どのように向き合うべきか? ことばの意味という観点から
verypluming
3
320
Terraformモジュールは、なぜ「魔境」化するのか
hayama17
1
150
ChatworkとBPaaS 異なる特性で学んだAI機能開発の ベストプラクティス
kubell_hr
2
1.3k
個人AIからチームAIへ:開発における品質と生産性の再設計
moongift
PRO
0
350
APIテストとは?
nagix
0
170
AI Engineering Summit Tokyo 2026 AIの前に、やることがある 〜医療データ企業の4フェーズ〜
dtaniwaki
0
500
速さだけじゃない! VoidZero ツールが移行先に選ばれる理由
mizdra
PRO
6
730
最低限これだけ押さえれ大丈夫_Claude Enterprise/Team企業展開ガバナンス入門
tkikuchi
1
630
TROCCOで始めるクラウドコストを民主化するためのFinOps
tk3fftk
3
540
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
300
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
120
Facilitating Awesome Meetings
lara
57
6.9k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
300
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
150
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.8k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
590
Practical Orchestrator
shlominoach
191
11k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
290
Un-Boring Meetings
codingconduct
0
300
Transcript
Introduction to
About me Full-stack dev @dhyegofernando
None
None
The beginning
http://web.archive.org/web/20050428014715/http://www.youtube.com/ 2005
None
SPA Single Page Application
None
“AngularJS: a kind of HTML extension.”
D D D
Data-binding Dependency Injection Directives
Data-binding
$('#input-name').on('change', function() { $('#greeting-name').text(this.value); }); #input-name #greeting-name
None
None
model module bootstrap template expression <div ng-app> <div> <label>Name:</label> <input
type="text" ng-model="yourName"> <hr> <h1>Hello {{yourName}}!</h1> </div> </div>
None
Dependency Injection
controller bootstrap <div ng-app="app" ng-controller="GreetingController"> <form ng-submit="greet()"> <input type="text" ng-model="name">
<button type="submit">Greet</button> </form> </div>
module application dependency injection ... service 3rd's module service angular.module('app',
['alerter']) .controller('GreetingController', function($scope, Alerter) { $scope.name = 'John Doe'; $scope.greet = function() { Alerter.show('Hello ' + $scope.name); }; }); angular.module('alerter', []) .factory('Alerter', function($window) { return { show: function(string) { $window.alert(string); } }; });
Directives
Tab Component
Non-semantic way bootstrap plugin element <div id="tab"> <ul class="tab-head"> <li><a
href="#content-1">Title 1</a></li> <li><a href="#content-2">Title 2</a></li> <li><a href="#content-3">Title 3</a></li> </ul> <div id="content-1" class="tab-content"> <p>Content 1 goes here</p> </div> <div id="content-2" class="tab-content"> <p>Content 2 goes here</p> </div> <div id="content-3" class="tab-content"> <p>Content 3 goes here</p> </div> </div> $('#tab').tab();
None
Semantic way directives bootstrap ... tab components <tabset> <tab heading="Title
1"> <p>Content 1 goes here</p> </tab> <tab heading="Title 2"> <p>Content 2 goes here</p> </tab> <tab heading="Title 3"> <p>Content 3 goes here</p> </tab> </tabset> angular.module('tab') .directive('tabset', function() { // ... }) .directive('tab', function() { // ... });
None
Hello {{ world }}
load angular script bootstrap application set model template <!DOCTYPE html>
<html lang="en" ng-app> <head> <meta charset="UTF-8"> <title>Hello World</title> </head> <body> <input type="text" ng-model="name"> <h1>Hello {{ name }}</h1> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/ angular.min.js"></script> </body> </html>
Some golden tips
Don't reinvent the wheel
...use 3rd's components ✓ nice documentation ✓ great tests suit
✓ maintained ✓ best practices
where to find components?
http://ngmodules.org/
http://bower.io/
how to use components?
install the component bower install --save angular-material load the component
scripts <link rel="stylesheet" href="angular-material.min.css" rel="stylesheet"> <script src="angular-material.min.js"></script> load the component module angular.module('app', ['ngMaterial']);
follow the style guide
https://github.com/johnpapa/angular-styleguide
write tests
http://karma-runner.github.io/
http://angular.github.io/protractor/
use generators
http://yeoman.io/
https://github.com/yeoman/generator-angular
putting it all together
https://github.com/dhyegofernando/shopping-list-app Shopping list app
keep learning
https://docs.angularjs.org/api
with videos
https://www.youtube.com/user/angularjs/
https://egghead.io/
with blogs
http://www.johnpapa.net/
http://briantford.com/
http://toddmotto.com/
with books
AngularJS - Up & Running
https://www.ng-book.com/
with tools
http://ng-inspector.org/
https://github.com/angular/angularjs-batarang
and more...
Angular 2
https://angular.io/
https://angular.io/docs/js/latest/quickstart.html
Questions ?
Now it's up to you
Thank you @dhyegofernando