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
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
260
CDK CLIで使ってたあの機能、CDK Toolkit Libraryではどうやるの?
smt7174
4
190
2つのフロントエンドと状態管理
mixi_engineers
PRO
3
110
20250912_RPALT_データを集める→とっ散らかる問題_Obsidian紹介
ratsbane666
0
100
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
190
Android Audio: Beyond Winning On It
atsushieno
0
2.4k
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
120
Unlocking the Power of AI Agents with LINE Bot MCP Server
linedevth
0
110
株式会社ログラス - 会社説明資料【エンジニア】/ Loglass Engineer
loglass2019
4
65k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
380k
「その開発、認知負荷高すぎませんか?」Platform Engineeringで始める開発者体験カイゼン術
sansantech
PRO
2
190
職種の壁を溶かして開発サイクルを高速に回す~情報透明性と職種越境から考えるAIフレンドリーな職種間連携~
daitasu
0
170
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Large-scale JavaScript Application Architecture
addyosmani
513
110k
Navigating Team Friction
lara
189
15k
For a Future-Friendly Web
brad_frost
180
9.9k
Git: the NoSQL Database
bkeepers
PRO
431
66k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Designing Experiences People Love
moore
142
24k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
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