SlideShare a Scribd company logo
1 of 29
Front End Development
with AngularJS
Presented by:
Bipin Upadhyaya
Node package manager
• Node.js Package Management (NPM)
 Package manager for Node.js modules
 Initializes an empty Node.js project with package.json file
npm init
Let’s start bootstrapping
(you no longer have to write the boilerplate)
Client side package manager
npm install -g bower
bower search <query>
bower install <package>#<version>
bower uninstall <package>
bower list
Bower is to the web browser what NPM is to Node.js. It is a
package manager for your front-end development libraries like
jQuery, Bootstrap and so on.
Some commands
(self explanatory)
Automate your frontend workflows
npm install -g grunt-cli npm install -g gulp
Grunt and Gulp make it easy to incorporate best practices and
automate the tedious parts of web development.
Yoman: Web scaffolding tool for
modern app
3 types of tools for improving productivity and satisfaction
when building a web app
npm install -g yo
yo scaffolds out a new application, writing your build configuration ad pulling relevant
build tasks and package manager dependencies that you might need for your build.
$ grunt serve
Angular MVC Architecture Pattern
• Layers
• View: Defines visual appearance
• Model: Defines data model of the
app (JS objects)
• Controller: Adds behavior
• Workflow
• User interacts with the view
• Changes the model, call controller
• Controller manipulates the model,
interacts with service
• Angular JS detects model changes
and updates the view
HTML
CSS
Javascript
Controller
ModelView
Server
User
Data Binding Syncing of the data between the Scope and the HTML (two ways)
Scope Context where the model data is stored so that templates and
controllers can access
Directive Allows developer to extend HTML with own elements and
attributes (reusable pieces)
Template HTML with additional markup used to describe what should be
displayed
Compiler Processes the template to generate HTML for the browser
Dependency Injection Fetching and setting up all the functionality needed by a
component
Module A container for all the parts of an application
Angular Concepts and Terminology
Angular Ecosystem
Ref. 1
Automatically bootstrapping
AngularJS
Ref. 1
var demoApp = angular.module(‘AngularApp', []);
What's the Array
for?
var demoApp = angular.module('demoApp',
['helperModule']);
Module that demoApp
depends on
Creating a Module
Module Phases
Config
• happens early while the application
is still being built. Only provider
services and constant services are
ready for dependency injection at
this stage.
RUN
• happens once the module has
loaded all of its services and
dependencies.
var module = angular.module(‘AngularApp', []);
module.config([function() {
alert('I run first');
}]);
module.run([function() {
alert('I run second');
}]);
Module Components and
Dependency Injection
• AngularJS lets you inject services (either from its own module or from
other modules) with the following pattern:
var module = angular.module(‘AngularApp', []);
module.service('serviceA', function() { ... });
module.service('serviceB', function(serviceA) { ... });
Using Directives and Data
Binding
<!DOCTYPE html>
<html ng-app= “AngularApp”>
<head>
<title></title>
</head>
<body>
<div class="container">
Name: <input type="text" ng-model="name" /> {{ name }}
</div>
<script src=“scripts/angular.js"></script>
</body>
</html>
Directive
Directive
Data Binding
Expression
<html data-ng-app="">
...
<div class="container"
data-ng-init="names=['Dave','Napur','Heedy','Shriva']">
<h3>Looping with the ng-repeat Directive</h3>
<ul>
<li data-ng-repeat="name in names">{{ name }}</li>
</ul>
</div>
...
</html>
Iterate through
names
Iterating with the ng-repeat
Directive
Naming Custom Directive
• When defining a directive in JavaScript, the name is in camel case
format:
• When we activate that directive we use a lower case form:
module.directive('myDirective', [function() { ... }]);
<my-directive></my-directive>
<div my-directive></div>
Example Custom Directive
comment directives
must set replace to true
Output in browser
Define the directive
Use it in HMTL
Defining Routes
var demoApp = angular.module(‘AngularApp', ['ngRoute']);
demoApp.config(function ($routeProvider) {
$routeProvider
.when('/',
{
controller: 'SimpleController',
templateUrl:'View1.html'
})
.when('/view2',
{
controller: 'SimpleController',
templateUrl:'View2.html'
})
.otherwise({ redirectTo: '/' });
});
Define Module
Routes
Filters
 Formats the value of an expression for display to the user.
 Filter can be used in view templates, controllers or services &
it is easy to define your own filter.
<ul>
<li ng-repeat="cust in customers | orderBy:'name'">
{{ cust.name | uppercase }}
</li>
</ul> Order customers by
name property
<input type="text" ng-model="nameText" />
<ul>
<li ng-repeat="cust in customers | filter:nameText | orderBy:'name'">
{{ cust.name }} - {{ cust.city }}</li>
</ul>
Filter customers by
model value
var demoApp = angular.module(‘AngularApp', []);
demoApp.controller('SimpleController', function ($scope) {
$scope.customers = [
{ name: 'Dave Jones', city: 'Phoenix' },
{ name: 'Jamie Riley', city: 'Atlanta' },
{ name: 'Heedy Wahlin', city: 'Chandler' },
{ name: 'Thomas Winter', city: 'Seattle' }
];
});
Define a Module
Define a
Controller
Creating a Controller in a
Module
<div class="container" ng-controller="SimpleController">
<h3>Adding a Simple Controller</h3>
<ul>
<li data-ng-repeat="cust in customers">
{{ cust.name }} - {{ cust.city }}
</li>
</ul>
</div>
<script>
function SimpleController($scope) {
$scope.customers = [
{ name: 'Dave Jones', city: 'Phoenix' },
{ name: 'Jamie Riley', city: 'Atlanta' },
{ name: 'Heedy Wahlin', city: 'Chandler' },
{ name: 'Thomas Winter', city: 'Seattle' }
];
}
</script>
Define the
controller to use
Basic controller
$scope injected
dynamically
Access $scope
Creating a View and
Controller
Value
• The value recipe stores a value within an injectable service.
• A value can store any service type: a string, a number, a function, and
object, etc.
• This value of this service can now be injected into any controller, filter,
or service.
//define a module
var myModule = angular.module(‘AngularApp', []);
//define a value
myModule.value('clientId', 'a12345654321x');
//define a controller that injects the value
myModule.controller('myController', ['$scope', 'clientId', function ($scope, clientId) {
$scope.clientId = clientId;
}]);
Service
• The service recipe will generate a singleton of an instantiated object.
//define a service
myModule.service('person', [function() {
this.first = 'John';
this.last = 'Jones';
this.name = function() {
return this.first + ' ' + this.last;
};
}]);
//inject the person service
myModule.controller('myController', ['$scope', 'person', function($scope,
person) {
$scope.name = person.name();
}]);
$http
$q
$timeout
…..
JS Testing
• Angular is designed to be testable (behavior-view separation, pre-
bundled mocks, dependency injection).
• Unit tests (ensure that the JavaScript code in our application is
operating correctly) - Karma Test Runner + Jasmine.
Jasmine describes the test in natural language.
describe ("A simple test", function (){
it("contains a spec with expectations", function(){
expect(true).toEqual(true);
});
});
TestSuite begins with
a call to describe()
TestCase (or spec)
begins with a it
Testcase contains one
or more matchers
Generating components
through yo generates the
necessary skeleton for tests
References
• http://cdn.tsq.me/ebook/AngularJS%20Test%20Driven.pdf
• https://docs.angularjs.org/guide
• https://dzone.com/refcardz/angularjs-essentials

More Related Content

What's hot

What's hot (20)

Angularjs PPT
Angularjs PPTAngularjs PPT
Angularjs PPT
 
Introduction Node.js
Introduction Node.jsIntroduction Node.js
Introduction Node.js
 
Vue.js
Vue.jsVue.js
Vue.js
 
Docker Tutorial.pdf
Docker Tutorial.pdfDocker Tutorial.pdf
Docker Tutorial.pdf
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Angular
AngularAngular
Angular
 
Web development using javaScript, React js, Node js, HTML, CSS and SQL
Web development using javaScript, React js, Node js, HTML, CSS and SQLWeb development using javaScript, React js, Node js, HTML, CSS and SQL
Web development using javaScript, React js, Node js, HTML, CSS and SQL
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
React Server Side Rendering with Next.js
React Server Side Rendering with Next.jsReact Server Side Rendering with Next.js
React Server Side Rendering with Next.js
 
AngularJS
AngularJS AngularJS
AngularJS
 
Introduction to Angularjs
Introduction to AngularjsIntroduction to Angularjs
Introduction to Angularjs
 
Intro to vue.js
Intro to vue.jsIntro to vue.js
Intro to vue.js
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
 
Angular js PPT
Angular js PPTAngular js PPT
Angular js PPT
 
Angular tutorial
Angular tutorialAngular tutorial
Angular tutorial
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
Intro To Docker
Intro To DockerIntro To Docker
Intro To Docker
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Express js
Express jsExpress js
Express js
 

Similar to Front end development with Angular JS

AngularJs Workshop SDP December 28th 2014
AngularJs Workshop SDP December 28th 2014AngularJs Workshop SDP December 28th 2014
AngularJs Workshop SDP December 28th 2014Ran Wahle
 
angularJs Workshop
angularJs WorkshopangularJs Workshop
angularJs WorkshopRan Wahle
 
Introduction to single page application with angular js
Introduction to single page application with angular jsIntroduction to single page application with angular js
Introduction to single page application with angular jsMindfire Solutions
 
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
 
Angular workshop - Full Development Guide
Angular workshop - Full Development GuideAngular workshop - Full Development Guide
Angular workshop - Full Development GuideNitin Giri
 
Valentine with Angular js - Introduction
Valentine with Angular js - IntroductionValentine with Angular js - Introduction
Valentine with Angular js - IntroductionSenthil Kumar
 
Workshop 13: AngularJS Parte II
Workshop 13: AngularJS Parte IIWorkshop 13: AngularJS Parte II
Workshop 13: AngularJS Parte IIVisual Engineering
 
Introduction to Ember.js
Introduction to Ember.jsIntroduction to Ember.js
Introduction to Ember.jsVinoth Kumar
 
AngularJS in 60ish Minutes
AngularJS in 60ish MinutesAngularJS in 60ish Minutes
AngularJS in 60ish MinutesDan Wahlin
 
Top 10 Mistakes AngularJS Developers Make
Top 10 Mistakes AngularJS Developers MakeTop 10 Mistakes AngularJS Developers Make
Top 10 Mistakes AngularJS Developers MakeMark Meyer
 
Intoduction to Angularjs
Intoduction to AngularjsIntoduction to Angularjs
Intoduction to AngularjsGaurav Agrawal
 

Similar to Front end development with Angular JS (20)

Angular Js Basics
Angular Js BasicsAngular Js Basics
Angular Js Basics
 
mean stack
mean stackmean stack
mean stack
 
AngularJs Workshop SDP December 28th 2014
AngularJs Workshop SDP December 28th 2014AngularJs Workshop SDP December 28th 2014
AngularJs Workshop SDP December 28th 2014
 
angularJs Workshop
angularJs WorkshopangularJs Workshop
angularJs Workshop
 
Angular js-crash-course
Angular js-crash-courseAngular js-crash-course
Angular js-crash-course
 
Introduction to single page application with angular js
Introduction to single page application with angular jsIntroduction to single page application with angular js
Introduction to single page application with angular js
 
AngularJs Crash Course
AngularJs Crash CourseAngularJs Crash Course
AngularJs Crash Course
 
Angular js
Angular jsAngular js
Angular js
 
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
 
Angular workshop - Full Development Guide
Angular workshop - Full Development GuideAngular workshop - Full Development Guide
Angular workshop - Full Development Guide
 
Mini-Training: AngularJS
Mini-Training: AngularJSMini-Training: AngularJS
Mini-Training: AngularJS
 
Valentine with Angular js - Introduction
Valentine with Angular js - IntroductionValentine with Angular js - Introduction
Valentine with Angular js - Introduction
 
Workshop 13: AngularJS Parte II
Workshop 13: AngularJS Parte IIWorkshop 13: AngularJS Parte II
Workshop 13: AngularJS Parte II
 
Introduction to Angular Js
Introduction to Angular JsIntroduction to Angular Js
Introduction to Angular Js
 
Valentine with AngularJS
Valentine with AngularJSValentine with AngularJS
Valentine with AngularJS
 
Introduction to Ember.js
Introduction to Ember.jsIntroduction to Ember.js
Introduction to Ember.js
 
Mean stack Magics
Mean stack MagicsMean stack Magics
Mean stack Magics
 
AngularJS in 60ish Minutes
AngularJS in 60ish MinutesAngularJS in 60ish Minutes
AngularJS in 60ish Minutes
 
Top 10 Mistakes AngularJS Developers Make
Top 10 Mistakes AngularJS Developers MakeTop 10 Mistakes AngularJS Developers Make
Top 10 Mistakes AngularJS Developers Make
 
Intoduction to Angularjs
Intoduction to AngularjsIntoduction to Angularjs
Intoduction to Angularjs
 

Recently uploaded

Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxAsutosh Ranjan
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGSIVASHANKAR N
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 

Recently uploaded (20)

Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Coefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptxCoefficient of Thermal Expansion and their Importance.pptx
Coefficient of Thermal Expansion and their Importance.pptx
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 

Front end development with Angular JS

  • 1. Front End Development with AngularJS Presented by: Bipin Upadhyaya
  • 2. Node package manager • Node.js Package Management (NPM)  Package manager for Node.js modules  Initializes an empty Node.js project with package.json file npm init
  • 3. Let’s start bootstrapping (you no longer have to write the boilerplate)
  • 4. Client side package manager npm install -g bower bower search <query> bower install <package>#<version> bower uninstall <package> bower list Bower is to the web browser what NPM is to Node.js. It is a package manager for your front-end development libraries like jQuery, Bootstrap and so on. Some commands (self explanatory)
  • 5. Automate your frontend workflows npm install -g grunt-cli npm install -g gulp Grunt and Gulp make it easy to incorporate best practices and automate the tedious parts of web development.
  • 6. Yoman: Web scaffolding tool for modern app 3 types of tools for improving productivity and satisfaction when building a web app npm install -g yo yo scaffolds out a new application, writing your build configuration ad pulling relevant build tasks and package manager dependencies that you might need for your build.
  • 7.
  • 9. Angular MVC Architecture Pattern • Layers • View: Defines visual appearance • Model: Defines data model of the app (JS objects) • Controller: Adds behavior • Workflow • User interacts with the view • Changes the model, call controller • Controller manipulates the model, interacts with service • Angular JS detects model changes and updates the view HTML CSS Javascript Controller ModelView Server User
  • 10. Data Binding Syncing of the data between the Scope and the HTML (two ways) Scope Context where the model data is stored so that templates and controllers can access Directive Allows developer to extend HTML with own elements and attributes (reusable pieces) Template HTML with additional markup used to describe what should be displayed Compiler Processes the template to generate HTML for the browser Dependency Injection Fetching and setting up all the functionality needed by a component Module A container for all the parts of an application Angular Concepts and Terminology
  • 13. var demoApp = angular.module(‘AngularApp', []); What's the Array for? var demoApp = angular.module('demoApp', ['helperModule']); Module that demoApp depends on Creating a Module
  • 14. Module Phases Config • happens early while the application is still being built. Only provider services and constant services are ready for dependency injection at this stage. RUN • happens once the module has loaded all of its services and dependencies. var module = angular.module(‘AngularApp', []); module.config([function() { alert('I run first'); }]); module.run([function() { alert('I run second'); }]);
  • 15. Module Components and Dependency Injection • AngularJS lets you inject services (either from its own module or from other modules) with the following pattern: var module = angular.module(‘AngularApp', []); module.service('serviceA', function() { ... }); module.service('serviceB', function(serviceA) { ... });
  • 16. Using Directives and Data Binding <!DOCTYPE html> <html ng-app= “AngularApp”> <head> <title></title> </head> <body> <div class="container"> Name: <input type="text" ng-model="name" /> {{ name }} </div> <script src=“scripts/angular.js"></script> </body> </html> Directive Directive Data Binding Expression
  • 17. <html data-ng-app=""> ... <div class="container" data-ng-init="names=['Dave','Napur','Heedy','Shriva']"> <h3>Looping with the ng-repeat Directive</h3> <ul> <li data-ng-repeat="name in names">{{ name }}</li> </ul> </div> ... </html> Iterate through names Iterating with the ng-repeat Directive
  • 18. Naming Custom Directive • When defining a directive in JavaScript, the name is in camel case format: • When we activate that directive we use a lower case form: module.directive('myDirective', [function() { ... }]); <my-directive></my-directive> <div my-directive></div>
  • 19. Example Custom Directive comment directives must set replace to true Output in browser Define the directive Use it in HMTL
  • 20. Defining Routes var demoApp = angular.module(‘AngularApp', ['ngRoute']); demoApp.config(function ($routeProvider) { $routeProvider .when('/', { controller: 'SimpleController', templateUrl:'View1.html' }) .when('/view2', { controller: 'SimpleController', templateUrl:'View2.html' }) .otherwise({ redirectTo: '/' }); }); Define Module Routes
  • 21. Filters  Formats the value of an expression for display to the user.  Filter can be used in view templates, controllers or services & it is easy to define your own filter. <ul> <li ng-repeat="cust in customers | orderBy:'name'"> {{ cust.name | uppercase }} </li> </ul> Order customers by name property <input type="text" ng-model="nameText" /> <ul> <li ng-repeat="cust in customers | filter:nameText | orderBy:'name'"> {{ cust.name }} - {{ cust.city }}</li> </ul> Filter customers by model value
  • 22. var demoApp = angular.module(‘AngularApp', []); demoApp.controller('SimpleController', function ($scope) { $scope.customers = [ { name: 'Dave Jones', city: 'Phoenix' }, { name: 'Jamie Riley', city: 'Atlanta' }, { name: 'Heedy Wahlin', city: 'Chandler' }, { name: 'Thomas Winter', city: 'Seattle' } ]; }); Define a Module Define a Controller Creating a Controller in a Module
  • 23. <div class="container" ng-controller="SimpleController"> <h3>Adding a Simple Controller</h3> <ul> <li data-ng-repeat="cust in customers"> {{ cust.name }} - {{ cust.city }} </li> </ul> </div> <script> function SimpleController($scope) { $scope.customers = [ { name: 'Dave Jones', city: 'Phoenix' }, { name: 'Jamie Riley', city: 'Atlanta' }, { name: 'Heedy Wahlin', city: 'Chandler' }, { name: 'Thomas Winter', city: 'Seattle' } ]; } </script> Define the controller to use Basic controller $scope injected dynamically Access $scope Creating a View and Controller
  • 24. Value • The value recipe stores a value within an injectable service. • A value can store any service type: a string, a number, a function, and object, etc. • This value of this service can now be injected into any controller, filter, or service. //define a module var myModule = angular.module(‘AngularApp', []); //define a value myModule.value('clientId', 'a12345654321x'); //define a controller that injects the value myModule.controller('myController', ['$scope', 'clientId', function ($scope, clientId) { $scope.clientId = clientId; }]);
  • 25. Service • The service recipe will generate a singleton of an instantiated object. //define a service myModule.service('person', [function() { this.first = 'John'; this.last = 'Jones'; this.name = function() { return this.first + ' ' + this.last; }; }]); //inject the person service myModule.controller('myController', ['$scope', 'person', function($scope, person) { $scope.name = person.name(); }]); $http $q $timeout …..
  • 26. JS Testing • Angular is designed to be testable (behavior-view separation, pre- bundled mocks, dependency injection). • Unit tests (ensure that the JavaScript code in our application is operating correctly) - Karma Test Runner + Jasmine. Jasmine describes the test in natural language.
  • 27. describe ("A simple test", function (){ it("contains a spec with expectations", function(){ expect(true).toEqual(true); }); }); TestSuite begins with a call to describe() TestCase (or spec) begins with a it Testcase contains one or more matchers
  • 28. Generating components through yo generates the necessary skeleton for tests

Editor's Notes

  1. Bascially you create the project (scaffolding, dependency management) 2) Develop (write css, JS), 3) Test 4) Build (Preporcess, minify, optimize images) and finally deploy. There tools makes the build process easy.
  2. Manual Bootstrapping angular.element(document).ready(function() { angular.module(‘myApp’, []); angular.bootstrap(document, [‘myApp’]); });
  3. When a module runs it has two phases that you can link into. The config phase runs early, before most services, objects, and data are available within the JavaScript. The run phase happens after the services, objects, and data have been defined. There are times when you will want to run some code before those service, objects, and data are defined. We’ll see that in a bit.
  4. A container for code for the different parts of your applications. A module is used to define services that are reusable by both the HTML document and other modules: Controller Directive Constant, Value Factory, Provider, Service Filter Best Practice: Divide your code into modules with distinct functionality. Don’t put everything in one module.
  5. The value is a pretty basic service that allows you to store any type of data into a service. ** It can be a simple data type, an object, a function, or whatever. ** The value can now be injected into any controller, filter, or service. What if you defined this service in Module X and your in Module Y? Don’t worry about it. Make sure that Module Y includes Module X as a dependency, then inject the service from Module X. ** In the code example you see how we define the service and how we inject it.
  6. We write a function as if it were a constructor, using the “this” keyword to set property names and functions that are part of the constructor. When you first inject this service into another controller, filter, or service it will build a singleton from the constructor. Any subsequent injections of the service will get the same singleton.
  7. End-to-end tests (ensure that the application as a whole operates as expected) - Protractor E2E test framework for Angular.