SlideShare a Scribd company logo
LEVELING UP
LEVELING UP
Bring AngularJS beginners up to speed and level up everyone’s skills so
we can understand core concepts and develop complex web
applications for our clients more effectively.
OBJECTIVE
LEVELING UP
HTML is great for declaring static documents, but it falters when we try
to use it for declaring dynamic views in web-applications. AngularJS
lets you extend HTML vocabulary for your application. The resulting
environment is extraordinarily expressive, readable, and quick to
develop.
WHY USE ANGULAR?
LEVELING UP
WHY USE ANGULAR?
MV* Pattern
Modular code
Future proof your code
Develop faster
Two-way data binding/Scope
Directives
Filters
Dependency injection
Services
Routes
Simple API Consumption
It’s Awesome!
LEVELING UP
ANGULAR IS AN MV* FRAMEWORK
Model
View Controller
Model-View-Controller is an architectural design pattern
that encourages improved application organization through
a separation of concerns. It enforces the isolation of
business data (Models) from user interfaces (Views), with a
third component (Controllers) traditionally present to
manage logic, user-input and the coordination of models
and views.
LEVELING UP
Scope is an object that refers to the application model. It is an
execution context for expressions. Scopes are arranged in hierarchical
structure which mimic the DOM structure of the application. Scopes
can watch expressions and propagate events.
SCOPE
LEVELING UP
Data-binding in Angular apps is the automatic synchronization of data
between the model and view components. The way that Angular
implements data-binding lets you treat the model as the single-source-
of-truth in your application. The view is a projection of the model at all
times. When the model changes, the view reflects the change, and vice
versa.
TWO-WAY DATA BINDING
LEVELING UP
At a high level, directives are markers on a DOM element (such as an
attribute, element name, comment or CSS class) that tell AngularJS's
HTML compiler ($compile) to attach a specified behavior to that DOM
element or even transform the DOM element and its children.
DIRECTIVES
<slide duration=“500” color=“blue” src=“img/slide-01.jpg” link=“http://google.com/” />
LEVELING UPDIRECTIVES
<slides>
<slide ng-repeat=“slide in slides”
duration=“{{slide.duration}}”
color=“{{slide.color}}”
src=“{{slide.img}}”
link=“{{slide.link}}” />
</slides>
$scope.slides = [
{
img: ‘img/slide01.jpg’,
color: ‘red’,
link: ‘google.com’,
duration: ‘2000’
},
{
img: ‘img/slide02.jpg’,
color: ‘blue’,
link: ‘apple.com’,
duration: ‘3000’
},
{
img: ‘img/slide03.jpg’,
color: ‘purple’,
link: ‘theverge.com’,
duration: ‘2500’
},
{
img: ‘img/slide04.jpg’,
color: ‘green’,
link: ‘techcrunch.com’,
duration: ‘1500’
}
]
<ul class=“slider”>
<li class=“slide” style=“background-
color:red” data-duration=“2000”>
<a href=“google.com”>
<img src=“img/slide01.jpg” />
</a>
</li>
<li class=“slide” style=“background-
color:blue” data-duration=“3000”>
<a href=“apple.com”>
<img src=“img/slide02.jpg” />
</a>
</li>
<li class=“slide” style=“background-
color:purple” data-duration=“2500”>
<a href=“theverge.com”>
<img src=“img/slide03.jpg” />
</a>
</li>
<li class=“slide” style=“background-
color:green” data-duration=“1500”>
<a href=“techcrunch.com”>
<img src=“img/slide04.jpg” />
</a>
</li>
</ul>
LEVELING UP
A filter formats the value of an expression for display to the user. They
can be used in view templates, controllers or services and it is easy to
define your own filter.
FILTERS
{{ expression | filter }}
LEVELING UP
Dependency Injection is a software design pattern that deals with how
components get hold of their dependencies. The Angular injector
subsystem is in charge of creating components, resolving their
dependencies, and providing them to other components as requested.
DEPENDENCY INJECTION
app.controller('DynamicFormCtrl', ['$scope', '$http', '$modal', '$filter',
function($scope, $http, $modal, $filter) { ... }]);
LEVELING UP
Angular services are substitutable objects that are wired together using
dependency injection. You can use services to organize and share code
across your app.
SERVICES
LEVELING UP
THREE TYPES OF SERVICES
Factories
Syntax:
module.factory('factoryName',
function);
Result:
When declaring factoryName as an
injectable argument you will be
provided with the value that is returned
by invoking the function reference
passed to module.factory.
Services
Syntax:
module.service('serviceName',
function);
Result:
When declaring serviceName as an
injectable argument you will be
provided with an instance of the
function. In other words new
FunctionYouPassedToService().
Providers
Syntax:
module.provider('providerName',
function);
Result:
When declaring providerName as an
injectable argument you will be
provided with ProviderFunction().$get().
The constructor function is instantiated
before the $get method is called -
ProviderFunction is the function
reference passed to module.provider.
LEVELING UP
Routes enable you to create different URLs for different content in your
application. Having different URLs for different content enables the user
to bookmark URLs to specific content, and send those URLs to friends
etc. In AngularJS each such bookmarkable URL is called a route.
ROUTES
LEVELING UP
Ad

Recommended

Angular2
Angular2
kunalkumar376
 
Angular JS training institute in Jaipur
Angular JS training institute in Jaipur
HEMANT SAXENA
 
Stephen Kennedy Silverlight 3 Deep Dive
Stephen Kennedy Silverlight 3 Deep Dive
MicrosoftFeed
 
Modern webtechnologies
Modern webtechnologies
Besjan Xhika
 
AngularJS = Browser applications on steroids
AngularJS = Browser applications on steroids
Maurice De Beijer [MVP]
 
Angular js
Angular js
ParmarAnisha
 
Angular js 1.3 presentation for fed nov 2014
Angular js 1.3 presentation for fed nov 2014
Sarah Hudson
 
Dive into Angular, part 1: Introduction
Dive into Angular, part 1: Introduction
Oleksii Prohonnyi
 
Angular js
Angular js
Silver Touch Technologies Ltd
 
Kalp Corporate Angular Js Tutorials
Kalp Corporate Angular Js Tutorials
Kalp Corporate
 
Angular js 1.3 basic tutorial
Angular js 1.3 basic tutorial
Al-Mutaz Bellah Salahat
 
Angular crash course
Angular crash course
Birhan Nega
 
Introduction to AngularJS
Introduction to AngularJS
David Parsons
 
Introduction to single page application with angular js
Introduction to single page application with angular js
Mindfire Solutions
 
Single Page Application
Single Page Application
Prasad Narasimhan
 
introduction to Angularjs basics
introduction to Angularjs basics
Ravindra K
 
Angular js presentation at Datacom
Angular js presentation at Datacom
David Xi Peng Yang
 
Angular introduction basic
Angular introduction basic
jagriti srivastava
 
angularJS Practicle Explanation
angularJS Practicle Explanation
Abhishek Sahu
 
Introduction to Angular Js
Introduction to Angular Js
Professional Guru
 
Examples of My Work and Creativity
Examples of My Work and Creativity
leewpederson
 
MVC Architecture
MVC Architecture
Prasanna Venkatesh
 
AngularJS Overview
AngularJS Overview
GDG Ciudad del Este
 
Itroducing Angular JS
Itroducing Angular JS
Carlos Emanuel Mathiasen
 
AngularJS
AngularJS
Hiten Pratap Singh
 
Why MVC?
Why MVC?
Wayne Tun Myint
 
Getting Started with Angular JS
Getting Started with Angular JS
Akshay Mathur
 
MVC Training Part 1
MVC Training Part 1
Lee Englestone
 
Laura aguirre
Laura aguirre
Nataly0101
 
Put the whiteboard in your database
Put the whiteboard in your database
Jørgen Braseth
 

More Related Content

What's hot (20)

Angular js
Angular js
Silver Touch Technologies Ltd
 
Kalp Corporate Angular Js Tutorials
Kalp Corporate Angular Js Tutorials
Kalp Corporate
 
Angular js 1.3 basic tutorial
Angular js 1.3 basic tutorial
Al-Mutaz Bellah Salahat
 
Angular crash course
Angular crash course
Birhan Nega
 
Introduction to AngularJS
Introduction to AngularJS
David Parsons
 
Introduction to single page application with angular js
Introduction to single page application with angular js
Mindfire Solutions
 
Single Page Application
Single Page Application
Prasad Narasimhan
 
introduction to Angularjs basics
introduction to Angularjs basics
Ravindra K
 
Angular js presentation at Datacom
Angular js presentation at Datacom
David Xi Peng Yang
 
Angular introduction basic
Angular introduction basic
jagriti srivastava
 
angularJS Practicle Explanation
angularJS Practicle Explanation
Abhishek Sahu
 
Introduction to Angular Js
Introduction to Angular Js
Professional Guru
 
Examples of My Work and Creativity
Examples of My Work and Creativity
leewpederson
 
MVC Architecture
MVC Architecture
Prasanna Venkatesh
 
AngularJS Overview
AngularJS Overview
GDG Ciudad del Este
 
Itroducing Angular JS
Itroducing Angular JS
Carlos Emanuel Mathiasen
 
AngularJS
AngularJS
Hiten Pratap Singh
 
Why MVC?
Why MVC?
Wayne Tun Myint
 
Getting Started with Angular JS
Getting Started with Angular JS
Akshay Mathur
 
MVC Training Part 1
MVC Training Part 1
Lee Englestone
 

Viewers also liked (20)

Laura aguirre
Laura aguirre
Nataly0101
 
Put the whiteboard in your database
Put the whiteboard in your database
Jørgen Braseth
 
KDK Events
KDK Events
peffler
 
Paul M Lawless
Paul M Lawless
Perry Benton
 
Crown Packaging Customer Interface
Crown Packaging Customer Interface
kirkh44
 
Calidad y Evaluación de Contenidos Electrónicos
Calidad y Evaluación de Contenidos Electrónicos
Haydee2251
 
Carmen cauja-manejo de word
Carmen cauja-manejo de word
Karina Cauja
 
La poésie definition
La poésie definition
EGM16081984
 
Documento sub. controle 3 pag.32
Documento sub. controle 3 pag.32
Elias Ribeiro Elias
 
Tipos de memoria ram
Tipos de memoria ram
Carito2205
 
Bluemix & Recruitment - Internship Challenge
Bluemix & Recruitment - Internship Challenge
Morocco JUG
 
Lecture 11.1 : heaps
Lecture 11.1 : heaps
Vivek Bhargav
 
Meinprospekt.de
Meinprospekt.de
smithamos
 
Report apprendistato
Report apprendistato
EnricoPanini
 
#Viñas y #Vinos del Fin del Mundo
#Viñas y #Vinos del Fin del Mundo
Cristina Ferro Fernández
 
A importância dos conceitos.
A importância dos conceitos.
Fábio Fernandes
 
De la bellota al roble: construir identidad 2.0
De la bellota al roble: construir identidad 2.0
Estudio de Comunicación
 
DeclarativeSql
DeclarativeSql
Takaaki Suzuki
 
Put the whiteboard in your database
Put the whiteboard in your database
Jørgen Braseth
 
KDK Events
KDK Events
peffler
 
Crown Packaging Customer Interface
Crown Packaging Customer Interface
kirkh44
 
Calidad y Evaluación de Contenidos Electrónicos
Calidad y Evaluación de Contenidos Electrónicos
Haydee2251
 
Carmen cauja-manejo de word
Carmen cauja-manejo de word
Karina Cauja
 
La poésie definition
La poésie definition
EGM16081984
 
Documento sub. controle 3 pag.32
Documento sub. controle 3 pag.32
Elias Ribeiro Elias
 
Tipos de memoria ram
Tipos de memoria ram
Carito2205
 
Bluemix & Recruitment - Internship Challenge
Bluemix & Recruitment - Internship Challenge
Morocco JUG
 
Lecture 11.1 : heaps
Lecture 11.1 : heaps
Vivek Bhargav
 
Meinprospekt.de
Meinprospekt.de
smithamos
 
Report apprendistato
Report apprendistato
EnricoPanini
 
A importância dos conceitos.
A importância dos conceitos.
Fábio Fernandes
 
De la bellota al roble: construir identidad 2.0
De la bellota al roble: construir identidad 2.0
Estudio de Comunicación
 
Ad

Similar to Leveling up with AngularJS (20)

Angular Presentation
Angular Presentation
Adam Moore
 
Angular workshop - Full Development Guide
Angular workshop - Full Development Guide
Nitin Giri
 
Everything You Need To Know About AngularJS
Everything You Need To Know About AngularJS
Sina Mirhejazi
 
AngularJS Basics
AngularJS Basics
Ravi Mone
 
AngularJS Workshop
AngularJS Workshop
Gianluca Cacace
 
Intoduction to Angularjs
Intoduction to Angularjs
Gaurav Agrawal
 
Angular patterns
Angular patterns
Premkumar M
 
AngularJS
AngularJS
Srivatsan Krishnamachari
 
Angular js
Angular js
yogi_solanki
 
AngularJS
AngularJS
Yogesh L
 
Introduction to AngularJS
Introduction to AngularJS
Jussi Pohjolainen
 
Angular js
Angular js
Larry Ball
 
Learning AngularJS - Complete coverage of AngularJS features and concepts
Learning AngularJS - Complete coverage of AngularJS features and concepts
Suresh Patidar
 
Angular.js Primer in Aalto University
Angular.js Primer in Aalto University
SC5.io
 
Basics of AngularJS
Basics of AngularJS
Filip Janevski
 
Intro to AngularJs
Intro to AngularJs
SolTech, Inc.
 
AngularJS
AngularJS
NexThoughts Technologies
 
AngularJS Basics and Best Practices - CC FE &UX
AngularJS Basics and Best Practices - CC FE &UX
JWORKS powered by Ordina
 
Introduction to AngularJs
Introduction to AngularJs
murtazahaveliwala
 
Angular js
Angular js
Hritesh Saha
 
Angular Presentation
Angular Presentation
Adam Moore
 
Angular workshop - Full Development Guide
Angular workshop - Full Development Guide
Nitin Giri
 
Everything You Need To Know About AngularJS
Everything You Need To Know About AngularJS
Sina Mirhejazi
 
AngularJS Basics
AngularJS Basics
Ravi Mone
 
Intoduction to Angularjs
Intoduction to Angularjs
Gaurav Agrawal
 
Angular patterns
Angular patterns
Premkumar M
 
Learning AngularJS - Complete coverage of AngularJS features and concepts
Learning AngularJS - Complete coverage of AngularJS features and concepts
Suresh Patidar
 
Angular.js Primer in Aalto University
Angular.js Primer in Aalto University
SC5.io
 
AngularJS Basics and Best Practices - CC FE &UX
AngularJS Basics and Best Practices - CC FE &UX
JWORKS powered by Ordina
 
Ad

Recently uploaded (20)

2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
janeliewang985
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
2025_06_18 - OpenMetadata Community Meeting.pdf
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Smarter Aviation Data Management: Lessons from Swedavia Airports and Sweco
Safe Software
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
Quantum AI: Where Impossible Becomes Probable
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
janeliewang985
 
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 

Leveling up with AngularJS

  • 2. LEVELING UP Bring AngularJS beginners up to speed and level up everyone’s skills so we can understand core concepts and develop complex web applications for our clients more effectively. OBJECTIVE
  • 3. LEVELING UP HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application. The resulting environment is extraordinarily expressive, readable, and quick to develop. WHY USE ANGULAR?
  • 4. LEVELING UP WHY USE ANGULAR? MV* Pattern Modular code Future proof your code Develop faster Two-way data binding/Scope Directives Filters Dependency injection Services Routes Simple API Consumption It’s Awesome!
  • 5. LEVELING UP ANGULAR IS AN MV* FRAMEWORK Model View Controller Model-View-Controller is an architectural design pattern that encourages improved application organization through a separation of concerns. It enforces the isolation of business data (Models) from user interfaces (Views), with a third component (Controllers) traditionally present to manage logic, user-input and the coordination of models and views.
  • 6. LEVELING UP Scope is an object that refers to the application model. It is an execution context for expressions. Scopes are arranged in hierarchical structure which mimic the DOM structure of the application. Scopes can watch expressions and propagate events. SCOPE
  • 7. LEVELING UP Data-binding in Angular apps is the automatic synchronization of data between the model and view components. The way that Angular implements data-binding lets you treat the model as the single-source- of-truth in your application. The view is a projection of the model at all times. When the model changes, the view reflects the change, and vice versa. TWO-WAY DATA BINDING
  • 8. LEVELING UP At a high level, directives are markers on a DOM element (such as an attribute, element name, comment or CSS class) that tell AngularJS's HTML compiler ($compile) to attach a specified behavior to that DOM element or even transform the DOM element and its children. DIRECTIVES <slide duration=“500” color=“blue” src=“img/slide-01.jpg” link=“http://google.com/” />
  • 9. LEVELING UPDIRECTIVES <slides> <slide ng-repeat=“slide in slides” duration=“{{slide.duration}}” color=“{{slide.color}}” src=“{{slide.img}}” link=“{{slide.link}}” /> </slides> $scope.slides = [ { img: ‘img/slide01.jpg’, color: ‘red’, link: ‘google.com’, duration: ‘2000’ }, { img: ‘img/slide02.jpg’, color: ‘blue’, link: ‘apple.com’, duration: ‘3000’ }, { img: ‘img/slide03.jpg’, color: ‘purple’, link: ‘theverge.com’, duration: ‘2500’ }, { img: ‘img/slide04.jpg’, color: ‘green’, link: ‘techcrunch.com’, duration: ‘1500’ } ] <ul class=“slider”> <li class=“slide” style=“background- color:red” data-duration=“2000”> <a href=“google.com”> <img src=“img/slide01.jpg” /> </a> </li> <li class=“slide” style=“background- color:blue” data-duration=“3000”> <a href=“apple.com”> <img src=“img/slide02.jpg” /> </a> </li> <li class=“slide” style=“background- color:purple” data-duration=“2500”> <a href=“theverge.com”> <img src=“img/slide03.jpg” /> </a> </li> <li class=“slide” style=“background- color:green” data-duration=“1500”> <a href=“techcrunch.com”> <img src=“img/slide04.jpg” /> </a> </li> </ul>
  • 10. LEVELING UP A filter formats the value of an expression for display to the user. They can be used in view templates, controllers or services and it is easy to define your own filter. FILTERS {{ expression | filter }}
  • 11. LEVELING UP Dependency Injection is a software design pattern that deals with how components get hold of their dependencies. The Angular injector subsystem is in charge of creating components, resolving their dependencies, and providing them to other components as requested. DEPENDENCY INJECTION app.controller('DynamicFormCtrl', ['$scope', '$http', '$modal', '$filter', function($scope, $http, $modal, $filter) { ... }]);
  • 12. LEVELING UP Angular services are substitutable objects that are wired together using dependency injection. You can use services to organize and share code across your app. SERVICES
  • 13. LEVELING UP THREE TYPES OF SERVICES Factories Syntax: module.factory('factoryName', function); Result: When declaring factoryName as an injectable argument you will be provided with the value that is returned by invoking the function reference passed to module.factory. Services Syntax: module.service('serviceName', function); Result: When declaring serviceName as an injectable argument you will be provided with an instance of the function. In other words new FunctionYouPassedToService(). Providers Syntax: module.provider('providerName', function); Result: When declaring providerName as an injectable argument you will be provided with ProviderFunction().$get(). The constructor function is instantiated before the $get method is called - ProviderFunction is the function reference passed to module.provider.
  • 14. LEVELING UP Routes enable you to create different URLs for different content in your application. Having different URLs for different content enables the user to bookmark URLs to specific content, and send those URLs to friends etc. In AngularJS each such bookmarkable URL is called a route. ROUTES