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
Dhyego Fernando
May 06, 2015
Technology
0
54
Angular JS Introduction
Slides for AngularJS Introduction talk presented by me.
Dhyego Fernando
May 06, 2015
Tweet
Share
More Decks by Dhyego Fernando
See All by Dhyego Fernando
Web Components with Polymer (extra Polymer 2.0)
dhyegofernando
0
47
Introduction to Angular 2
dhyegofernando
0
63
Modular Angular JS
dhyegofernando
0
35
Other Decks in Technology
See All in Technology
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.2k
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
290
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.3k
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
420
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
0
330
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
410
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
190
Context Engineeringの取り組み
nutslove
0
290
データ民主化のための LLM 活用状況と課題紹介(IVRy の場合)
wxyzzz
2
680
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
180
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
1
360
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1.1k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
220
The Pragmatic Product Professional
lauravandoore
37
7.1k
Statistics for Hackers
jakevdp
799
230k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
140
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Building AI with AI
inesmontani
PRO
1
680
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.3k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
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