SlideShare a Scribd company logo
1 of 50
Download to read offline
ANGULARJS 101 
"Cause evrything is cool the ng-way" 
#GDG Blida #DEVFEST
#badjokes!
HOUSSEM YAHIAOUI 
AKA : EL-CODE 
Student & GDG Blida member 
& 
MEAN stack lover & AngularJS indoor speacker
PS: I'M NOT A PSYCHOPATH
FRIENDLY BUT DEADLY PERSON 
If you are || you know someone who like those stuff just call me at: 
+213 0 - what-ever !
AGENDA ! 
1. What is Angular ? 
2. What is a SPA 
3. Angularjs Anatomy : 
1. App vs module 
2. Services 
3. Controllers 
4. Factories 
5. Directives 
So Let's Rock in !
First of all : 
In order to make things even clearer !
WHAT IS ANGULARJS ? 
what about a History lesson !
Developed in 2009 By : Misko Hevery, publicly released in 
oct 2010 version : 0.9.0 and now we're in version 1.3.6
And his PM Said
AngularJS is : 
1. An intuitive framework that makes it easy to organize 
your code. 
2. An MV* framework : MVC / MVVM / MVP ... 
3. A two way data binding framework : a data 
synchronization method that let the value change in 
model and view side.
Me when i start to get along with Angularjs
SPA ! 
Question: 
What's that ?
Spa ! 
"Single-Page Applications (SPAs) are Web apps that load a 
Single HTML page and dynamically update that page as 
the user interacts with the app." 
Mike Wasson 
Or : 
"An awesome relatively new tech for awesome cool and 
UI/UX capable application that makes you feel like a JS guru 
and makes you looks good in public aka: "Khshine" 
Me
Another Question:
Why we don't use Jquery 
Jquery capabilites are framed in the DOM manipulation so 
the framework can't handle certain SPAs needed 
behaviours such as routing & role decaupling aka SOC ...
ANGULARJS ANATOMY !
NG APP ! 
App or Module ?
Simple RE : App = Module* 
& remember
The What ? 
Consider the module as your container, that container can 
have your application different parts : Controllers / Filters 
/ Services / Directives / Constants / Values / Interceptors 
...
THE HOW! 
Angularjs apps like many other framework have a View 
side and a Js files which attach to it and manage it so in 
order to have a fully working application we need the 
following:
In JS Side ! 
// in the app.js file or what ever you want to name it 
angular.module('application name', ['External modules / it's blank by default]); 
//or 
var app = angular.module('application name', []); 
// now we use the handled variable instead 
app. 
* 
* 
* 
*
In View Side ! 
Template / Index / Fragment ... * 
<html ng‐app="Application Name"> 
<head> 
<!‐‐ Something HERE ! ‐‐> 
</head> 
<body> 
<!‐‐ Something HERE ! ‐‐> 
</body>
ANGULARJS SERVICES 
Question in mind ! 
What's a service ? and why we Should use it ?
The What ? 
A substitutable objects that are wired together using DI. 
You can use services to organize and share code across 
your app 
From the angularjs.org site
Angular support two type of services: 
1. Core services: Are the ones shiped with angular outside of the box 
which mean that we can use them whenever we want. 
- A core service is prefixed by the : "$" sign like : $http / $q / $window ... 
2. Custom services: Are the ones that we write with and for angular to 
suite our special needs and also we can use them whenever we want.
Services in Angular have two different names and 
manners to code them, we have: 
1. Factories 
2. Services
So far we have a anything like a SPA 
Let's change it !
SPAs neat functionality is Routing 
Let's talk about that one
AngularJS services are a poviders of somehow they provide 
something when they called 
and because of that we have the Routing service 
represented in the officiel ngRoute module. or other the 
new awesome module the ui-router module. 
let's $digest that !
From our CodeLab Code
Let's analyse the code : 
1. $stateProvider != an Angularjs Service, it's a ui-router 
service 
2. the State represent a route a urlproperty in our 
queryString 
3. Each route need 4 main things : 
1. A Url 
2. A Name 
3. A Controller - we will talk about that in the next slide - 
4. A template : an html page that shows our needed info
WHATS IS A CONTROLLER! 
Angularjs controller is a javascript constructor function 
that is used to augment the Angular Scope 
From the angularjs.org site
The How ! 
// 1/2 ways to write controllers this way let you focus on 
// your javascript code and push the angular configuration away 
var Classy = function($scope){ 
$scope.name = "houssem"; 
}; 
// NG Associate the controller to the app in hand ! 
angular.module('app').controller('Class', Classy); 
Or 
// 2nd way to write your angurlarjs controller using the angularjs documented way 
angular.module('app').controller('Class', function($scope){ 
$scope.name = "houssem"; 
};
But wait there is something to consider 
"Optimisation"
So after minification 
We are goins to have the folowing 
var Class=function(s){s.name="houssem";}; 
angular.module('app').controller('Class', Classy); 
So one big mess of unreadable code 
+ 
Unkown ng arguments ! 
=
We Need a solution ! 
Dont fear "DI" is here ! 
But How? and Who it's gonna FIX the problem!
The How ! 
// 1/2 ways to write controllers this way let you focus on 
// your javascript code and push the angular configuration away 
var Classy = function($scope){ 
$scope.name = "houssem"; 
}; 
// 'DI' magic 
Classy.$inject = ['$scope']; 
// NG Associate the controller to the app in hand ! 
angular.module('app').controller('Class', Classy); 
so after minification we're going to have the following 
var Classy=function(s){s.name="houssem";};Classy.$inject=['$scope']; 
angular.module('app').controller('Class', Classy); 
The result : Same mess with correct output and a happy 
console
WHATS IS A FACTORY! 
Problimatic : The Web need DATA 
As a solution: 
AngularJS factory can help us getting the requiried informations in order to 
use it in data needed places.
The Factory syntax ! 
// 1/2 ways to write factories this way let you focus on 
// your javascript code and push the angular configuration away 
var ClassyFactory = function($http){ 
return { 
getGDGBlidaMembers : function(year){ 
return $http.get('/DATA ENDPOINT ROUTE/'+year); 
} 
}; 
// DI 
ClassyFactory.$inject = ['$http']; 
// NG Associate the factory to the app in hand ! 
angular.module('app').factory('ClassyFactory', ClassyFactory); 
PS : we're using the revealing pattern ;-)
But : you may say the following :
Now we have the needed data, let's use it ! 
But How ?
Simply declare it as dependency in your Controller 
var Classy = function($scope, ClassyFacotry, INotify){ 
ClassyFactory.getGDGBlidaMembers(2014) 
.success(response) { 
$scope.data = response.members; 
INotify.onSuccess('Data Gathring', 'Done with success !'); 
}.error(response){ 
INotify.onError('An error has occured', response.err_message + ' !'); 
} 
}); 
}; 
//DI 
Classy.$inject = ['$scope', 'ClassyFacotry', 'INotify']; 
// NG Associate the controller to the app in hand ! 
angular.module('app').controller('Class', Classy); 
Your now well covered ! 
Display It ^_^
WHATS IS A DIRECTIVE ! 
For me a Directive is 
HTML5 ++
But What's exactly i a Directive? 
A directive is a new concept introduced in Angularjs, and 
used to : 
1. To give our Page / Template / View a new set of functionnality. 
2. Let us handle our JS logic without extra work. 
3. Best part is : Angularjs let and gives you the power of creating 
new directives to suit our needs.
That's looks promising but how Exactly it works ? 
1. Consider the directive as : your regular HTML5 markup 
Attribute. 
<input type="text" name="email" awesome‐attrib‐directive="info" required="true"> 
2. Consider the directive as : your new regular HTML5 
markup Tag. 
<gdg‐awesome required="true"></gdg‐awesome> 
3. Or Both ! 
<gdg‐awesome grpe‐name="GDG" grpe‐loc="Blida"></gdg‐awesome>
Angular is already have a really cool set of core directives 
And more ...
That was it ! / Keep in touch with me ! 
G+ : +HoussemYahiaoui 
Twittre : @free_g33k 
Facebook : fcb.com/houssem.intern0t 
#peace

More Related Content

What's hot

Gettings started with the superheroic JavaScript library AngularJS
Gettings started with the superheroic JavaScript library AngularJSGettings started with the superheroic JavaScript library AngularJS
Gettings started with the superheroic JavaScript library AngularJSArmin Vieweg
 
Angular.js - JS Camp UKraine 2013
Angular.js - JS Camp UKraine 2013Angular.js - JS Camp UKraine 2013
Angular.js - JS Camp UKraine 2013Max Klymyshyn
 
Angular JS - Develop Responsive Single Page Application
Angular JS - Develop Responsive Single Page ApplicationAngular JS - Develop Responsive Single Page Application
Angular JS - Develop Responsive Single Page ApplicationEdureka!
 
AngularJS interview questions
AngularJS interview questionsAngularJS interview questions
AngularJS interview questionsUri Lukach
 
Modules in AngularJs
Modules in AngularJsModules in AngularJs
Modules in AngularJsK Arunkumar
 
Angularjs interview questions and answers
Angularjs interview questions and answersAngularjs interview questions and answers
Angularjs interview questions and answersAnil Singh
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJSAldo Pizzagalli
 
AngularJS Introduction
AngularJS IntroductionAngularJS Introduction
AngularJS IntroductionBrajesh Yadav
 
Beyond AngularJS: Best practices and more
Beyond AngularJS: Best practices and moreBeyond AngularJS: Best practices and more
Beyond AngularJS: Best practices and moreAri Lerner
 
Introduction to AngularJS Framework
Introduction to AngularJS FrameworkIntroduction to AngularJS Framework
Introduction to AngularJS FrameworkRaveendra R
 
Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3성일 한
 
Angular Project Report
 Angular Project Report Angular Project Report
Angular Project ReportKodexhub
 
Web components are the future of the web - Take advantage of new web technolo...
Web components are the future of the web - Take advantage of new web technolo...Web components are the future of the web - Take advantage of new web technolo...
Web components are the future of the web - Take advantage of new web technolo...Marios Fakiolas
 
Angular js best practice
Angular js best practiceAngular js best practice
Angular js best practiceMatteo Scandolo
 
Understanding angular js $rootscope and $scope
Understanding angular js $rootscope and $scopeUnderstanding angular js $rootscope and $scope
Understanding angular js $rootscope and $scopeBrajesh Yadav
 

What's hot (20)

Get satrted angular js
Get satrted angular jsGet satrted angular js
Get satrted angular js
 
Gettings started with the superheroic JavaScript library AngularJS
Gettings started with the superheroic JavaScript library AngularJSGettings started with the superheroic JavaScript library AngularJS
Gettings started with the superheroic JavaScript library AngularJS
 
Angular.js - JS Camp UKraine 2013
Angular.js - JS Camp UKraine 2013Angular.js - JS Camp UKraine 2013
Angular.js - JS Camp UKraine 2013
 
Angular JS - Develop Responsive Single Page Application
Angular JS - Develop Responsive Single Page ApplicationAngular JS - Develop Responsive Single Page Application
Angular JS - Develop Responsive Single Page Application
 
AngularJS interview questions
AngularJS interview questionsAngularJS interview questions
AngularJS interview questions
 
Modules in AngularJs
Modules in AngularJsModules in AngularJs
Modules in AngularJs
 
Angularjs interview questions and answers
Angularjs interview questions and answersAngularjs interview questions and answers
Angularjs interview questions and answers
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
AngularJS Introduction
AngularJS IntroductionAngularJS Introduction
AngularJS Introduction
 
Beyond AngularJS: Best practices and more
Beyond AngularJS: Best practices and moreBeyond AngularJS: Best practices and more
Beyond AngularJS: Best practices and more
 
Angular Js
Angular JsAngular Js
Angular Js
 
AngularJS
AngularJSAngularJS
AngularJS
 
Angular - Beginner
Angular - BeginnerAngular - Beginner
Angular - Beginner
 
Introduction to AngularJS Framework
Introduction to AngularJS FrameworkIntroduction to AngularJS Framework
Introduction to AngularJS Framework
 
Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3Ionic으로 모바일앱 만들기 #3
Ionic으로 모바일앱 만들기 #3
 
Angular 2 - Better or worse
Angular 2 - Better or worseAngular 2 - Better or worse
Angular 2 - Better or worse
 
Angular Project Report
 Angular Project Report Angular Project Report
Angular Project Report
 
Web components are the future of the web - Take advantage of new web technolo...
Web components are the future of the web - Take advantage of new web technolo...Web components are the future of the web - Take advantage of new web technolo...
Web components are the future of the web - Take advantage of new web technolo...
 
Angular js best practice
Angular js best practiceAngular js best practice
Angular js best practice
 
Understanding angular js $rootscope and $scope
Understanding angular js $rootscope and $scopeUnderstanding angular js $rootscope and $scope
Understanding angular js $rootscope and $scope
 

Viewers also liked

AngularJS Basics and Best Practices - CC FE &UX
AngularJS Basics and Best Practices - CC FE &UXAngularJS Basics and Best Practices - CC FE &UX
AngularJS Basics and Best Practices - CC FE &UXJWORKS powered by Ordina
 
AngularJS Architecture
AngularJS ArchitectureAngularJS Architecture
AngularJS ArchitectureEyal Vardi
 
AngularJS application architecture
AngularJS application architectureAngularJS application architecture
AngularJS application architectureGabriele Falace
 
AngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedAngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedStéphane Bégaudeau
 
Single Page Application (SPA) using AngularJS
Single Page Application (SPA) using AngularJSSingle Page Application (SPA) using AngularJS
Single Page Application (SPA) using AngularJSM R Rony
 
AngularJS - What is it & Why is it awesome ? (with demos)
AngularJS - What is it & Why is it awesome ? (with demos)AngularJS - What is it & Why is it awesome ? (with demos)
AngularJS - What is it & Why is it awesome ? (with demos)Gary Arora
 

Viewers also liked (9)

AngularJS Basics and Best Practices - CC FE &UX
AngularJS Basics and Best Practices - CC FE &UXAngularJS Basics and Best Practices - CC FE &UX
AngularJS Basics and Best Practices - CC FE &UX
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
AngularJS Architecture
AngularJS ArchitectureAngularJS Architecture
AngularJS Architecture
 
AngularJS application architecture
AngularJS application architectureAngularJS application architecture
AngularJS application architecture
 
AngularJS Basics with Example
AngularJS Basics with ExampleAngularJS Basics with Example
AngularJS Basics with Example
 
AngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedAngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get started
 
Single Page Application (SPA) using AngularJS
Single Page Application (SPA) using AngularJSSingle Page Application (SPA) using AngularJS
Single Page Application (SPA) using AngularJS
 
AngularJS - What is it & Why is it awesome ? (with demos)
AngularJS - What is it & Why is it awesome ? (with demos)AngularJS - What is it & Why is it awesome ? (with demos)
AngularJS - What is it & Why is it awesome ? (with demos)
 
Introduction to Angularjs
Introduction to AngularjsIntroduction to Angularjs
Introduction to Angularjs
 

Similar to AngularJS 101

AngularJS Basics
AngularJS BasicsAngularJS Basics
AngularJS BasicsRavi Mone
 
ANGULAR JS LAB MANUAL(final) vtu2021 sch
ANGULAR JS LAB MANUAL(final) vtu2021 schANGULAR JS LAB MANUAL(final) vtu2021 sch
ANGULAR JS LAB MANUAL(final) vtu2021 schkannikadg
 
Mobile phone future angular js
Mobile phone future angular jsMobile phone future angular js
Mobile phone future angular jsatanacy
 
Intoduction to Angularjs
Intoduction to AngularjsIntoduction to Angularjs
Intoduction to AngularjsGaurav Agrawal
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJSGregor Woiwode
 
Top 7 Angular Best Practices to Organize Your Angular App
Top 7 Angular Best Practices to Organize Your Angular AppTop 7 Angular Best Practices to Organize Your Angular App
Top 7 Angular Best Practices to Organize Your Angular AppKaty Slemon
 
angularjs_tutorial.docx
angularjs_tutorial.docxangularjs_tutorial.docx
angularjs_tutorial.docxtelegramvip
 
One Weekend With AngularJS
One Weekend With AngularJSOne Weekend With AngularJS
One Weekend With AngularJSYashobanta Bai
 
Angular workshop - Full Development Guide
Angular workshop - Full Development GuideAngular workshop - Full Development Guide
Angular workshop - Full Development GuideNitin Giri
 
introduction to Angularjs basics
introduction to Angularjs basicsintroduction to Angularjs basics
introduction to Angularjs basicsRavindra K
 
Start your journey with angular | Basic Angular
Start your journey with angular | Basic AngularStart your journey with angular | Basic Angular
Start your journey with angular | Basic AngularAnwarul Islam
 
Angular Interview Questions-PDF.pdf
Angular Interview Questions-PDF.pdfAngular Interview Questions-PDF.pdf
Angular Interview Questions-PDF.pdfJohnLeo57
 
A Big Picture Of AngularJS
A Big Picture Of AngularJSA Big Picture Of AngularJS
A Big Picture Of AngularJSNitin Pandit
 

Similar to AngularJS 101 (20)

AngularJS Basics
AngularJS BasicsAngularJS Basics
AngularJS Basics
 
Intro to AngularJs
Intro to AngularJsIntro to AngularJs
Intro to AngularJs
 
ANGULAR JS LAB MANUAL(final) vtu2021 sch
ANGULAR JS LAB MANUAL(final) vtu2021 schANGULAR JS LAB MANUAL(final) vtu2021 sch
ANGULAR JS LAB MANUAL(final) vtu2021 sch
 
AngularJS
AngularJS AngularJS
AngularJS
 
Mean stack Magics
Mean stack MagicsMean stack Magics
Mean stack Magics
 
Angular js
Angular jsAngular js
Angular js
 
Mobile phone future angular js
Mobile phone future angular jsMobile phone future angular js
Mobile phone future angular js
 
Intoduction to Angularjs
Intoduction to AngularjsIntoduction to Angularjs
Intoduction to Angularjs
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJS
 
Top 7 Angular Best Practices to Organize Your Angular App
Top 7 Angular Best Practices to Organize Your Angular AppTop 7 Angular Best Practices to Organize Your Angular App
Top 7 Angular Best Practices to Organize Your Angular App
 
angularjs_tutorial.docx
angularjs_tutorial.docxangularjs_tutorial.docx
angularjs_tutorial.docx
 
SF Cordova Meetup
SF Cordova MeetupSF Cordova Meetup
SF Cordova Meetup
 
One Weekend With AngularJS
One Weekend With AngularJSOne Weekend With AngularJS
One Weekend With AngularJS
 
Angular workshop - Full Development Guide
Angular workshop - Full Development GuideAngular workshop - Full Development Guide
Angular workshop - Full Development Guide
 
introduction to Angularjs basics
introduction to Angularjs basicsintroduction to Angularjs basics
introduction to Angularjs basics
 
Start your journey with angular | Basic Angular
Start your journey with angular | Basic AngularStart your journey with angular | Basic Angular
Start your journey with angular | Basic Angular
 
Angular Interview Questions-PDF.pdf
Angular Interview Questions-PDF.pdfAngular Interview Questions-PDF.pdf
Angular Interview Questions-PDF.pdf
 
Angular
AngularAngular
Angular
 
A Big Picture Of AngularJS
A Big Picture Of AngularJSA Big Picture Of AngularJS
A Big Picture Of AngularJS
 
AngularJS in practice
AngularJS in practiceAngularJS in practice
AngularJS in practice
 

Recently uploaded

How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Recently uploaded (20)

How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 

AngularJS 101

  • 1. ANGULARJS 101 "Cause evrything is cool the ng-way" #GDG Blida #DEVFEST
  • 3. HOUSSEM YAHIAOUI AKA : EL-CODE Student & GDG Blida member & MEAN stack lover & AngularJS indoor speacker
  • 4. PS: I'M NOT A PSYCHOPATH
  • 5. FRIENDLY BUT DEADLY PERSON If you are || you know someone who like those stuff just call me at: +213 0 - what-ever !
  • 6. AGENDA ! 1. What is Angular ? 2. What is a SPA 3. Angularjs Anatomy : 1. App vs module 2. Services 3. Controllers 4. Factories 5. Directives So Let's Rock in !
  • 7. First of all : In order to make things even clearer !
  • 8. WHAT IS ANGULARJS ? what about a History lesson !
  • 9. Developed in 2009 By : Misko Hevery, publicly released in oct 2010 version : 0.9.0 and now we're in version 1.3.6
  • 10. And his PM Said
  • 11. AngularJS is : 1. An intuitive framework that makes it easy to organize your code. 2. An MV* framework : MVC / MVVM / MVP ... 3. A two way data binding framework : a data synchronization method that let the value change in model and view side.
  • 12. Me when i start to get along with Angularjs
  • 13. SPA ! Question: What's that ?
  • 14. Spa ! "Single-Page Applications (SPAs) are Web apps that load a Single HTML page and dynamically update that page as the user interacts with the app." Mike Wasson Or : "An awesome relatively new tech for awesome cool and UI/UX capable application that makes you feel like a JS guru and makes you looks good in public aka: "Khshine" Me
  • 16. Why we don't use Jquery Jquery capabilites are framed in the DOM manipulation so the framework can't handle certain SPAs needed behaviours such as routing & role decaupling aka SOC ...
  • 18. NG APP ! App or Module ?
  • 19. Simple RE : App = Module* & remember
  • 20. The What ? Consider the module as your container, that container can have your application different parts : Controllers / Filters / Services / Directives / Constants / Values / Interceptors ...
  • 21. THE HOW! Angularjs apps like many other framework have a View side and a Js files which attach to it and manage it so in order to have a fully working application we need the following:
  • 22. In JS Side ! // in the app.js file or what ever you want to name it angular.module('application name', ['External modules / it's blank by default]); //or var app = angular.module('application name', []); // now we use the handled variable instead app. * * * *
  • 23. In View Side ! Template / Index / Fragment ... * <html ng‐app="Application Name"> <head> <!‐‐ Something HERE ! ‐‐> </head> <body> <!‐‐ Something HERE ! ‐‐> </body>
  • 24. ANGULARJS SERVICES Question in mind ! What's a service ? and why we Should use it ?
  • 25. The What ? A substitutable objects that are wired together using DI. You can use services to organize and share code across your app From the angularjs.org site
  • 26. Angular support two type of services: 1. Core services: Are the ones shiped with angular outside of the box which mean that we can use them whenever we want. - A core service is prefixed by the : "$" sign like : $http / $q / $window ... 2. Custom services: Are the ones that we write with and for angular to suite our special needs and also we can use them whenever we want.
  • 27.
  • 28. Services in Angular have two different names and manners to code them, we have: 1. Factories 2. Services
  • 29. So far we have a anything like a SPA Let's change it !
  • 30. SPAs neat functionality is Routing Let's talk about that one
  • 31. AngularJS services are a poviders of somehow they provide something when they called and because of that we have the Routing service represented in the officiel ngRoute module. or other the new awesome module the ui-router module. let's $digest that !
  • 33. Let's analyse the code : 1. $stateProvider != an Angularjs Service, it's a ui-router service 2. the State represent a route a urlproperty in our queryString 3. Each route need 4 main things : 1. A Url 2. A Name 3. A Controller - we will talk about that in the next slide - 4. A template : an html page that shows our needed info
  • 34. WHATS IS A CONTROLLER! Angularjs controller is a javascript constructor function that is used to augment the Angular Scope From the angularjs.org site
  • 35. The How ! // 1/2 ways to write controllers this way let you focus on // your javascript code and push the angular configuration away var Classy = function($scope){ $scope.name = "houssem"; }; // NG Associate the controller to the app in hand ! angular.module('app').controller('Class', Classy); Or // 2nd way to write your angurlarjs controller using the angularjs documented way angular.module('app').controller('Class', function($scope){ $scope.name = "houssem"; };
  • 36. But wait there is something to consider "Optimisation"
  • 37. So after minification We are goins to have the folowing var Class=function(s){s.name="houssem";}; angular.module('app').controller('Class', Classy); So one big mess of unreadable code + Unkown ng arguments ! =
  • 38.
  • 39. We Need a solution ! Dont fear "DI" is here ! But How? and Who it's gonna FIX the problem!
  • 40. The How ! // 1/2 ways to write controllers this way let you focus on // your javascript code and push the angular configuration away var Classy = function($scope){ $scope.name = "houssem"; }; // 'DI' magic Classy.$inject = ['$scope']; // NG Associate the controller to the app in hand ! angular.module('app').controller('Class', Classy); so after minification we're going to have the following var Classy=function(s){s.name="houssem";};Classy.$inject=['$scope']; angular.module('app').controller('Class', Classy); The result : Same mess with correct output and a happy console
  • 41. WHATS IS A FACTORY! Problimatic : The Web need DATA As a solution: AngularJS factory can help us getting the requiried informations in order to use it in data needed places.
  • 42. The Factory syntax ! // 1/2 ways to write factories this way let you focus on // your javascript code and push the angular configuration away var ClassyFactory = function($http){ return { getGDGBlidaMembers : function(year){ return $http.get('/DATA ENDPOINT ROUTE/'+year); } }; // DI ClassyFactory.$inject = ['$http']; // NG Associate the factory to the app in hand ! angular.module('app').factory('ClassyFactory', ClassyFactory); PS : we're using the revealing pattern ;-)
  • 43. But : you may say the following :
  • 44. Now we have the needed data, let's use it ! But How ?
  • 45. Simply declare it as dependency in your Controller var Classy = function($scope, ClassyFacotry, INotify){ ClassyFactory.getGDGBlidaMembers(2014) .success(response) { $scope.data = response.members; INotify.onSuccess('Data Gathring', 'Done with success !'); }.error(response){ INotify.onError('An error has occured', response.err_message + ' !'); } }); }; //DI Classy.$inject = ['$scope', 'ClassyFacotry', 'INotify']; // NG Associate the controller to the app in hand ! angular.module('app').controller('Class', Classy); Your now well covered ! Display It ^_^
  • 46. WHATS IS A DIRECTIVE ! For me a Directive is HTML5 ++
  • 47. But What's exactly i a Directive? A directive is a new concept introduced in Angularjs, and used to : 1. To give our Page / Template / View a new set of functionnality. 2. Let us handle our JS logic without extra work. 3. Best part is : Angularjs let and gives you the power of creating new directives to suit our needs.
  • 48. That's looks promising but how Exactly it works ? 1. Consider the directive as : your regular HTML5 markup Attribute. <input type="text" name="email" awesome‐attrib‐directive="info" required="true"> 2. Consider the directive as : your new regular HTML5 markup Tag. <gdg‐awesome required="true"></gdg‐awesome> 3. Or Both ! <gdg‐awesome grpe‐name="GDG" grpe‐loc="Blida"></gdg‐awesome>
  • 49. Angular is already have a really cool set of core directives And more ...
  • 50. That was it ! / Keep in touch with me ! G+ : +HoussemYahiaoui Twittre : @free_g33k Facebook : fcb.com/houssem.intern0t #peace