SlideShare a Scribd company logo
1
Angular2 with TypeScript
- Ravi Mone
About me
● I AM Ravi Mone
● Have ample year of experience in back-end and Front-end.
● Working on technologies like Symfony2, AngularJS, ReactJS.
● Currently serving in Techjini Solution as Team Leader.
● You can connect me via
○ https://in.linkedin.com/in/ravi-mone-49b26519
Agenda
• What is TypeScript?
• Why use TypeScript?
• Angular2 Framework Architecture
• What’s happening in Angular2?
• Building Blocks of Angular2
• Life Cycle Hooks
• Bootstrap the application
• Routing
• Demo
What is TypeScript?
TypeScript (contd.)
Angular2 with type script
Why use TypeScript? (Contd.)
• TypeScript follows a less radical/progressive approach.
• It’s a typed superset of JavaScript and existing JavaScript projects can be
converted to TypeScript simply by renaming the source files from*.js to *.ts
Angular2 Framework Architecture
What’s happening in Angular2?
• Angular2 is not yet stable. The features and guidelines are subject to
change from time to time.
• Current RC (Release Candidate) version
https://github.com/angular/angular/milestones
• To be aware of the weekly updates/modifications, visit: https://github.
com/angular/angular/blob/master/CHANGELOG.md
• To know about the Angular2 Style Guide (Alpha-Version), visit:
https://github.com/mgechev/angular2-style-guide
8 Main building blocks of an Angular2 App
1. Module
2. Component
3. Template
4. Meta Data
5. Data-Binding
6. Services
7. Directives
8. Dependency Injection
Module (Export/Import)
• In ES6 each module is defined in its own file.
• The functions or variables defined in a module are not visible outside
unless you explicitly export them. This means that you can write code in
your module and only export those values which should be accessed by
other parts of your app.
• ES6 modules are declarative in nature. To export certain variables from a
module you just use the keyword export.
• Similarly, to consume the exported variables in a different module you use
import.
Let’s create a simple module with two utility functions:
generateRandom() : Generates a random number.
sum() : Adds two numbers.
Next, let’s create a file named utility.js for the module:
And in your app.js
2. Component (@Component({ … }) )
• In Angular 2, Components are the main way we build and specify elements
and logic on the page.
• Create reusable UI building blocks for an application.
1. Each Angular component requires a single @Component. The @Component annotation
specifies when a component is instantiated, and which properties and hostListeners it
binds to.
2. When a component is instantiated, it acts according to the encapsulation value
ViewEncapsulation.native,
ViewEncapsulation.Emulated,
ViewEncapsulation.None.
3. All template expressions and statements are then evaluated against the component
instance.
3. Template
• We define a Component's view with its companion template.
• A template is a form of HTML that tells Angular how to render the
Component.
• A template looks like regular HTML, with data/event binding properties
Angular2 with type script
Sample Angular Template
4. @ Meta Data
• Metadata is data that describes other data.
• Meta is a prefix that in most information technology usages means "an
underlying definition or description."
• Metadata summarizes basic information about data, which can make
finding and working with particular instances of data easier.
So far Meta Data Classes
5. {{ DATA BINDING}}
Data Binding (contd.)
1. The "interpolation" displays the component's hero.name property value
within the <div> tags.
2. The [hero] property binding passes the selectedHero from the parent
HeroListComponent to the hero property of the childHeroDetailComponent.
Data Binding (contd.)
3. The (click) event binding calls the Component's selectHero method when the
user clicks on a hero's name.
4. Two-way data binding is an important fourth form that combines property and
event binding in a single notation using the ngModeldirective
Angular2 with type script
6. Service
• If a piece of code is needed by many components in our application then
create a single reusable service.
• When a component needs this service we can simply inject it (the service)
using DI (@Injectable).
• A service is the mechanism used to share functionalities over Components
(or with one Component if our app contains only one Component).
• Service is the best place from where we can bring our external Data to our
app. Or do some repetitive task or calculations.
• Service can be shared between as many as Components we want.
7. @Directive
● A directive is simply a class with a specific Metadata (@Directive
decorator)
● We have three kinds of directives:
○ Components: yes a component is a directive. (@Component)
○ Structural directives: conditionally add or remove content from the
DOM.
○ Attribute directives: Alters the Element by changing its behavior or the
appearance
Three Kinds of Directives
1. Component
<angular-2-hello-world>loading…</angular-2-hello-world>
2. Structural Directive (ngIf, ngFor )
<div*myAngular2Directive=”ShowMeIfFalse”>
<b>I’m visible => showMeIfFalse=false </b>
</div>
3. Attribute Directive
<p [zoomIn]=”blue”> Some thing goes here </p>
Directive Vs. Component
8. Dependency Injection (Provider, BootStrap(‘’, []))
• In software engineering, dependency injection is a software design pattern
that implements inversion of control for resolving dependencies.
• The idea behind dependency injection is very simple. If you have a
component that depends on a service. You do not create that service
yourself. Instead, you request one in the constructor, and the framework
will provide you one. By doing so you can depend on interfaces rather than
concrete types. This leads to more decoupled code, which enables
testability, and other great things
Demo: http://plnkr.co/edit/CG9HuLzI6KqncxiVeACM?p=preview
Life Cycle Hooks
• When the component class implements some lifecycle_hooks the
callbacks are called by the change detection at defined points in time
during the life of the component.
Demo: http://plnkr.co/edit/IVn4bb4Fp2eDDPrLODay?p=preview
Bootstrap the App
● You instantiate an Angular application by explicitly specifying a component
to use as the root component for your application via:
○ bootstrap(‘<root component>’) in case there is a single component
○ bootstrap(‘<root component>’, [<DI>]) in case the component has
dependencies.
Routing
Angular2 with type script
Angular2 with type script
Angular2 with type script
Angular2 with type script
Angular2 with type script
Angular2 with type script
Angular2 with type script
Demo Links
• Kick Start: Demo a small component (meet-up folder)
• Forms: http://plnkr.co/edit/aN3LhpwnH2qyRYNfJn8q?p=preview
• Inputs: http://plnkr.co/edit/rV5s4CKZWLfhW63gGnKp?p=preview
• Outputs: http://plnkr.co/edit/7ByGLXviLy4SbrXgdlx7?p=preview
• ViewChild: http://plnkr.co/edit/vhdL7e0SccIbMk0eZKfh?p=preview
• Encapsulation : https://plnkr.co/edit/inF7VaYJvj8uJfuLKV4Z?p=preview
• Directives : http://plnkr.co/edit/P0G8cWYCP8sC7Yrvlo8L?p=preview
• CRUD application : https://github.com/ravi-mone/angular2-crud
• Routes : https://github.com/ravi-mone/angular2-lab
Angular2 with type script
Angular2 with type script
Ad

Recommended

Angular2 with TypeScript
Angular2 with TypeScript
Rohit Bishnoi
 
The evolution of Angular 2 @ AngularJS Munich Meetup #5
The evolution of Angular 2 @ AngularJS Munich Meetup #5
Johannes Weber
 
Angular2
Angular2
Software Infrastructure
 
Getting Started with Angular 2
Getting Started with Angular 2
FITC
 
Angular 2: What's New?
Angular 2: What's New?
jbandi
 
Angular 2 - Core Concepts
Angular 2 - Core Concepts
Fabio Biondi
 
Angular 2 - An Introduction
Angular 2 - An Introduction
NexThoughts Technologies
 
Angular 2... so can I use it now??
Angular 2... so can I use it now??
Laurent Duveau
 
Introduction to Angular 2
Introduction to Angular 2
Knoldus Inc.
 
Angular 2: core concepts
Angular 2: core concepts
Codemotion
 
Angular 2 Crash Course
Angular 2 Crash Course
Elisha Kramer
 
Adventures with Angular 2
Adventures with Angular 2
Dragos Ionita
 
Introduction to Angular 2
Introduction to Angular 2
Naveen Pete
 
Angular 2
Angular 2
Nigam Goyal
 
Building Universal Applications with Angular 2
Building Universal Applications with Angular 2
Minko Gechev
 
Introduction to Angular 2
Introduction to Angular 2
Dawid Myslak
 
Angular 2 : le réveil de la force
Angular 2 : le réveil de la force
Nicolas PENNEC
 
Angular 2
Angular 2
alinabiliashevych
 
Angular2 intro
Angular2 intro
Shawn McKay
 
What’s new in angular 2
What’s new in angular 2
Ran Wahle
 
Building scalable modular app with Angular2 concept
Building scalable modular app with Angular2 concept
kzw
 
Introduction to angular 2
Introduction to angular 2
Dor Moshe
 
Tech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new framework
Codemotion
 
Angular 2 - The Next Framework
Angular 2 - The Next Framework
Commit University
 
Migrating an application from Angular 1 to Angular 2
Migrating an application from Angular 1 to Angular 2
Ross Dederer
 
Angular 1.x vs 2 - In code level
Angular 1.x vs 2 - In code level
Anuradha Bandara
 
Introduction to angular 2
Introduction to angular 2
Dhyego Fernando
 
Angular1x and Angular 2 for Beginners
Angular1x and Angular 2 for Beginners
Oswald Campesato
 
Angular2 workshop
Angular2 workshop
Nir Kaufman
 
Angular2 - getting-ready
Angular2 - getting-ready
Nir Kaufman
 

More Related Content

What's hot (20)

Introduction to Angular 2
Introduction to Angular 2
Knoldus Inc.
 
Angular 2: core concepts
Angular 2: core concepts
Codemotion
 
Angular 2 Crash Course
Angular 2 Crash Course
Elisha Kramer
 
Adventures with Angular 2
Adventures with Angular 2
Dragos Ionita
 
Introduction to Angular 2
Introduction to Angular 2
Naveen Pete
 
Angular 2
Angular 2
Nigam Goyal
 
Building Universal Applications with Angular 2
Building Universal Applications with Angular 2
Minko Gechev
 
Introduction to Angular 2
Introduction to Angular 2
Dawid Myslak
 
Angular 2 : le réveil de la force
Angular 2 : le réveil de la force
Nicolas PENNEC
 
Angular 2
Angular 2
alinabiliashevych
 
Angular2 intro
Angular2 intro
Shawn McKay
 
What’s new in angular 2
What’s new in angular 2
Ran Wahle
 
Building scalable modular app with Angular2 concept
Building scalable modular app with Angular2 concept
kzw
 
Introduction to angular 2
Introduction to angular 2
Dor Moshe
 
Tech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new framework
Codemotion
 
Angular 2 - The Next Framework
Angular 2 - The Next Framework
Commit University
 
Migrating an application from Angular 1 to Angular 2
Migrating an application from Angular 1 to Angular 2
Ross Dederer
 
Angular 1.x vs 2 - In code level
Angular 1.x vs 2 - In code level
Anuradha Bandara
 
Introduction to angular 2
Introduction to angular 2
Dhyego Fernando
 
Angular1x and Angular 2 for Beginners
Angular1x and Angular 2 for Beginners
Oswald Campesato
 
Introduction to Angular 2
Introduction to Angular 2
Knoldus Inc.
 
Angular 2: core concepts
Angular 2: core concepts
Codemotion
 
Angular 2 Crash Course
Angular 2 Crash Course
Elisha Kramer
 
Adventures with Angular 2
Adventures with Angular 2
Dragos Ionita
 
Introduction to Angular 2
Introduction to Angular 2
Naveen Pete
 
Building Universal Applications with Angular 2
Building Universal Applications with Angular 2
Minko Gechev
 
Introduction to Angular 2
Introduction to Angular 2
Dawid Myslak
 
Angular 2 : le réveil de la force
Angular 2 : le réveil de la force
Nicolas PENNEC
 
What’s new in angular 2
What’s new in angular 2
Ran Wahle
 
Building scalable modular app with Angular2 concept
Building scalable modular app with Angular2 concept
kzw
 
Introduction to angular 2
Introduction to angular 2
Dor Moshe
 
Tech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new framework
Codemotion
 
Angular 2 - The Next Framework
Angular 2 - The Next Framework
Commit University
 
Migrating an application from Angular 1 to Angular 2
Migrating an application from Angular 1 to Angular 2
Ross Dederer
 
Angular 1.x vs 2 - In code level
Angular 1.x vs 2 - In code level
Anuradha Bandara
 
Introduction to angular 2
Introduction to angular 2
Dhyego Fernando
 
Angular1x and Angular 2 for Beginners
Angular1x and Angular 2 for Beginners
Oswald Campesato
 

Viewers also liked (20)

Angular2 workshop
Angular2 workshop
Nir Kaufman
 
Angular2 - getting-ready
Angular2 - getting-ready
Nir Kaufman
 
Angular2 - A story from the trenches
Angular2 - A story from the trenches
Johannes Rudolph
 
Launch Yourself into The AngularJS 2 And TypeScript Space
Launch Yourself into The AngularJS 2 And TypeScript Space
ColdFusionConference
 
Angular2 & Native Script GDG DevFest 2016
Angular2 & Native Script GDG DevFest 2016
Luciano Murruni
 
Angular2 workshop
Angular2 workshop
Filip Bruun Bech-Larsen
 
Angular 2 MVD workshop
Angular 2 MVD workshop
Iran Reyes Fleitas
 
Angular JS 2_0 BCS CTO_in_Res V3
Angular JS 2_0 BCS CTO_in_Res V3
Bruce Pentreath
 
React JS
React JS
Software Infrastructure
 
Angular2 - In Action
Angular2 - In Action
Sebastian Pożoga
 
Angular 2.0 change detection
Angular 2.0 change detection
Ran Wahle
 
Angular2 Development for Java developers
Angular2 Development for Java developers
Yakov Fain
 
AngularJS - Overcoming performance issues. Limits.
AngularJS - Overcoming performance issues. Limits.
Dragos Mihai Rusu
 
Unit Testing and Coverage for AngularJS
Unit Testing and Coverage for AngularJS
Knoldus Inc.
 
Symfony2 Introduction Presentation
Symfony2 Introduction Presentation
Nerd Tzanetopoulos
 
How Angular2 Can Improve Your AngularJS Apps Today!
How Angular2 Can Improve Your AngularJS Apps Today!
Nir Kaufman
 
Angular js 2
Angular js 2
Ran Wahle
 
Progressive Web Apps: trick or real magic? - Maurizio Mangione - Codemotion M...
Progressive Web Apps: trick or real magic? - Maurizio Mangione - Codemotion M...
Codemotion
 
Introduction angular2 français
Introduction angular2 français
Saameh BEN SAID
 
Testing Angular 2 Applications - Rich Web 2016
Testing Angular 2 Applications - Rich Web 2016
Matt Raible
 
Angular2 workshop
Angular2 workshop
Nir Kaufman
 
Angular2 - getting-ready
Angular2 - getting-ready
Nir Kaufman
 
Angular2 - A story from the trenches
Angular2 - A story from the trenches
Johannes Rudolph
 
Launch Yourself into The AngularJS 2 And TypeScript Space
Launch Yourself into The AngularJS 2 And TypeScript Space
ColdFusionConference
 
Angular2 & Native Script GDG DevFest 2016
Angular2 & Native Script GDG DevFest 2016
Luciano Murruni
 
Angular JS 2_0 BCS CTO_in_Res V3
Angular JS 2_0 BCS CTO_in_Res V3
Bruce Pentreath
 
Angular 2.0 change detection
Angular 2.0 change detection
Ran Wahle
 
Angular2 Development for Java developers
Angular2 Development for Java developers
Yakov Fain
 
AngularJS - Overcoming performance issues. Limits.
AngularJS - Overcoming performance issues. Limits.
Dragos Mihai Rusu
 
Unit Testing and Coverage for AngularJS
Unit Testing and Coverage for AngularJS
Knoldus Inc.
 
Symfony2 Introduction Presentation
Symfony2 Introduction Presentation
Nerd Tzanetopoulos
 
How Angular2 Can Improve Your AngularJS Apps Today!
How Angular2 Can Improve Your AngularJS Apps Today!
Nir Kaufman
 
Angular js 2
Angular js 2
Ran Wahle
 
Progressive Web Apps: trick or real magic? - Maurizio Mangione - Codemotion M...
Progressive Web Apps: trick or real magic? - Maurizio Mangione - Codemotion M...
Codemotion
 
Introduction angular2 français
Introduction angular2 français
Saameh BEN SAID
 
Testing Angular 2 Applications - Rich Web 2016
Testing Angular 2 Applications - Rich Web 2016
Matt Raible
 
Ad

Similar to Angular2 with type script (20)

better-apps-angular-2-day1.pdf and home
better-apps-angular-2-day1.pdf and home
ChethanGowda886434
 
Angular2
Angular2
SitaPrajapati
 
Angular2
Angular2
kunalkumar376
 
Angular2 + rxjs
Angular2 + rxjs
Christoffer Noring
 
Introduction to Angular2
Introduction to Angular2
Knoldus Inc.
 
Angular 2 overview in 60 minutes
Angular 2 overview in 60 minutes
Loiane Groner
 
Angular 2 KTS
Angular 2 KTS
John Vall
 
Angular 2
Angular 2
Pramod Raghav
 
Angular
Angular
Vinod Kumar Kayartaya
 
Angularj2.0
Angularj2.0
Mallikarjuna G D
 
Commit University - Exploring Angular 2
Commit University - Exploring Angular 2
Commit University
 
Angularjs2 presentation
Angularjs2 presentation
dharisk
 
An afternoon with angular 2
An afternoon with angular 2
Mike Melusky
 
Moving From AngularJS to Angular 2
Moving From AngularJS to Angular 2
Exilesoft
 
Introduction to angular | Concepts and Environment setup
Introduction to angular | Concepts and Environment setup
Ansley Rodrigues
 
An evening with Angular 2
An evening with Angular 2
Mike Melusky
 
Dive into Angular, part 4: Angular 2.0
Dive into Angular, part 4: Angular 2.0
Oleksii Prohonnyi
 
Angular 2 introduction
Angular 2 introduction
Christoffer Noring
 
17612235.ppt
17612235.ppt
yovixi5669
 
What's new in Angular 2?
What's new in Angular 2?
Alfred Jett Grandeza
 
better-apps-angular-2-day1.pdf and home
better-apps-angular-2-day1.pdf and home
ChethanGowda886434
 
Introduction to Angular2
Introduction to Angular2
Knoldus Inc.
 
Angular 2 overview in 60 minutes
Angular 2 overview in 60 minutes
Loiane Groner
 
Angular 2 KTS
Angular 2 KTS
John Vall
 
Commit University - Exploring Angular 2
Commit University - Exploring Angular 2
Commit University
 
Angularjs2 presentation
Angularjs2 presentation
dharisk
 
An afternoon with angular 2
An afternoon with angular 2
Mike Melusky
 
Moving From AngularJS to Angular 2
Moving From AngularJS to Angular 2
Exilesoft
 
Introduction to angular | Concepts and Environment setup
Introduction to angular | Concepts and Environment setup
Ansley Rodrigues
 
An evening with Angular 2
An evening with Angular 2
Mike Melusky
 
Dive into Angular, part 4: Angular 2.0
Dive into Angular, part 4: Angular 2.0
Oleksii Prohonnyi
 
Ad

Recently uploaded (20)

Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Ravi Tamada
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
All Things Open
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
The Growing Value and Application of FME & GenAI
The Growing Value and Application of FME & GenAI
Safe Software
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Ravi Tamada
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
Agentic AI for Developers and Data Scientists Build an AI Agent in 10 Lines o...
All Things Open
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
Python Conference Singapore - 19 Jun 2025
Python Conference Singapore - 19 Jun 2025
ninefyi
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
The Growing Value and Application of FME & GenAI
The Growing Value and Application of FME & GenAI
Safe Software
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
“MPU+: A Transformative Solution for Next-Gen AI at the Edge,” a Presentation...
Edge AI and Vision Alliance
 

Angular2 with type script

  • 2. About me ● I AM Ravi Mone ● Have ample year of experience in back-end and Front-end. ● Working on technologies like Symfony2, AngularJS, ReactJS. ● Currently serving in Techjini Solution as Team Leader. ● You can connect me via ○ https://in.linkedin.com/in/ravi-mone-49b26519
  • 3. Agenda • What is TypeScript? • Why use TypeScript? • Angular2 Framework Architecture • What’s happening in Angular2? • Building Blocks of Angular2 • Life Cycle Hooks • Bootstrap the application • Routing • Demo
  • 7. Why use TypeScript? (Contd.) • TypeScript follows a less radical/progressive approach. • It’s a typed superset of JavaScript and existing JavaScript projects can be converted to TypeScript simply by renaming the source files from*.js to *.ts
  • 9. What’s happening in Angular2? • Angular2 is not yet stable. The features and guidelines are subject to change from time to time. • Current RC (Release Candidate) version https://github.com/angular/angular/milestones • To be aware of the weekly updates/modifications, visit: https://github. com/angular/angular/blob/master/CHANGELOG.md • To know about the Angular2 Style Guide (Alpha-Version), visit: https://github.com/mgechev/angular2-style-guide
  • 10. 8 Main building blocks of an Angular2 App 1. Module 2. Component 3. Template 4. Meta Data 5. Data-Binding 6. Services 7. Directives 8. Dependency Injection
  • 11. Module (Export/Import) • In ES6 each module is defined in its own file. • The functions or variables defined in a module are not visible outside unless you explicitly export them. This means that you can write code in your module and only export those values which should be accessed by other parts of your app. • ES6 modules are declarative in nature. To export certain variables from a module you just use the keyword export. • Similarly, to consume the exported variables in a different module you use import.
  • 12. Let’s create a simple module with two utility functions: generateRandom() : Generates a random number. sum() : Adds two numbers. Next, let’s create a file named utility.js for the module:
  • 13. And in your app.js
  • 14. 2. Component (@Component({ … }) ) • In Angular 2, Components are the main way we build and specify elements and logic on the page. • Create reusable UI building blocks for an application. 1. Each Angular component requires a single @Component. The @Component annotation specifies when a component is instantiated, and which properties and hostListeners it binds to. 2. When a component is instantiated, it acts according to the encapsulation value ViewEncapsulation.native, ViewEncapsulation.Emulated, ViewEncapsulation.None. 3. All template expressions and statements are then evaluated against the component instance.
  • 15. 3. Template • We define a Component's view with its companion template. • A template is a form of HTML that tells Angular how to render the Component. • A template looks like regular HTML, with data/event binding properties
  • 18. 4. @ Meta Data • Metadata is data that describes other data. • Meta is a prefix that in most information technology usages means "an underlying definition or description." • Metadata summarizes basic information about data, which can make finding and working with particular instances of data easier.
  • 19. So far Meta Data Classes
  • 20. 5. {{ DATA BINDING}}
  • 21. Data Binding (contd.) 1. The "interpolation" displays the component's hero.name property value within the <div> tags. 2. The [hero] property binding passes the selectedHero from the parent HeroListComponent to the hero property of the childHeroDetailComponent.
  • 22. Data Binding (contd.) 3. The (click) event binding calls the Component's selectHero method when the user clicks on a hero's name. 4. Two-way data binding is an important fourth form that combines property and event binding in a single notation using the ngModeldirective
  • 24. 6. Service • If a piece of code is needed by many components in our application then create a single reusable service. • When a component needs this service we can simply inject it (the service) using DI (@Injectable). • A service is the mechanism used to share functionalities over Components (or with one Component if our app contains only one Component). • Service is the best place from where we can bring our external Data to our app. Or do some repetitive task or calculations. • Service can be shared between as many as Components we want.
  • 25. 7. @Directive ● A directive is simply a class with a specific Metadata (@Directive decorator) ● We have three kinds of directives: ○ Components: yes a component is a directive. (@Component) ○ Structural directives: conditionally add or remove content from the DOM. ○ Attribute directives: Alters the Element by changing its behavior or the appearance
  • 26. Three Kinds of Directives 1. Component <angular-2-hello-world>loading…</angular-2-hello-world> 2. Structural Directive (ngIf, ngFor ) <div*myAngular2Directive=”ShowMeIfFalse”> <b>I’m visible => showMeIfFalse=false </b> </div> 3. Attribute Directive <p [zoomIn]=”blue”> Some thing goes here </p>
  • 28. 8. Dependency Injection (Provider, BootStrap(‘’, [])) • In software engineering, dependency injection is a software design pattern that implements inversion of control for resolving dependencies. • The idea behind dependency injection is very simple. If you have a component that depends on a service. You do not create that service yourself. Instead, you request one in the constructor, and the framework will provide you one. By doing so you can depend on interfaces rather than concrete types. This leads to more decoupled code, which enables testability, and other great things Demo: http://plnkr.co/edit/CG9HuLzI6KqncxiVeACM?p=preview
  • 29. Life Cycle Hooks • When the component class implements some lifecycle_hooks the callbacks are called by the change detection at defined points in time during the life of the component. Demo: http://plnkr.co/edit/IVn4bb4Fp2eDDPrLODay?p=preview
  • 30. Bootstrap the App ● You instantiate an Angular application by explicitly specifying a component to use as the root component for your application via: ○ bootstrap(‘<root component>’) in case there is a single component ○ bootstrap(‘<root component>’, [<DI>]) in case the component has dependencies.
  • 39. Demo Links • Kick Start: Demo a small component (meet-up folder) • Forms: http://plnkr.co/edit/aN3LhpwnH2qyRYNfJn8q?p=preview • Inputs: http://plnkr.co/edit/rV5s4CKZWLfhW63gGnKp?p=preview • Outputs: http://plnkr.co/edit/7ByGLXviLy4SbrXgdlx7?p=preview • ViewChild: http://plnkr.co/edit/vhdL7e0SccIbMk0eZKfh?p=preview • Encapsulation : https://plnkr.co/edit/inF7VaYJvj8uJfuLKV4Z?p=preview • Directives : http://plnkr.co/edit/P0G8cWYCP8sC7Yrvlo8L?p=preview • CRUD application : https://github.com/ravi-mone/angular2-crud • Routes : https://github.com/ravi-mone/angular2-lab