Vous êtes sur la page 1sur 26

HTML enhanced for web apps!

~Sagar Acharya

Agenda

Misunderstandings
What is angular?
SPAs
Why angular?
Features
MVC/MVVM
Directives, filters, expression
Demo
Why should we use it?
Why developer should use it?
Stats

Another JS
Lib

Useful for
web only

Used for
styling
purpose

Difficult to
learn

Lots of new
learning

What is ANGULARJS?
Its not a JavaScript library (As
they say). There are no
functions which we can directly
call and use.
It is not a DOM manipulation
library like jQuery. But it uses
subset of jQuery for DOM
manipulation (called jqLite).

What is ANGULAR JS? (contd)


Focus more on HTML side of web apps.
For MVC/MVVM design pattern
AngularJS is a Javascript MVC framework created by Google to build
properly architectured and maintenable web applications.
ANGULARJS is what HTML could have been if it had been designed
for web application development.
AngularJS extends HTML with new attributes.

Single Page Application (SPA)


SPA Demo
http://www.myspa.com

View

View

View

View

The Challenge with SPAs


DOM Manipulation

History

Module Loading

Routing

Caching

Object Modeling

Data Binding

Ajax/Promises

View Loading

Solution?

Why ANGULARJS?
Defines numerous ways to organize web application at client side.
Enhances HTML by attaching directives, custom tags, attributes,
expressions, templates within HTML.
Encourage TDD
Encourage MVC/MVVM design pattern
Code Reuse
Good for Single Page Apps (SPA)
Cool Features -> Next Slide

Key Features of ANGULARJS


Data
Binding

MVC
Template
s

jqLite

Routing
History

Testing
Factorie
s

ngularJS is a full-featured
SPA framework
ViewMod
el
Controllers

Controllers

Views

Dependency
Injection

Directive
s
Validatio
n

MVC : Model View Controller


View :

3. Implement
the Business
Logic on
response data
and Bind it to
View
Model:

Business Logic
Notify view changes
Application
Functionality
Data in general

Model

Renders the Model data


Send User actions/events to
controller
UI

View
1. Event or User
Action or View
Load

Controll
er

2. Maps to particular
Model after fetching
the data

Controller:

Define Application Behavior


Maps user actions to Model
Select view for response

MVVM: Model View ViewModel


UI
View

Business
Logic and
Data

User actions, commands


Data binding
Notifications

ViewMod
el

Model

Data Access
Update ViewModel about
change

Presentation Logic

What are Directives?

The directives can be placed in element names, attributes, class


names, as well as comments. Directives are a way to teach HTML
new tricks.

A directive is just a function which executes when the compiler


encounters it in the DOM.

<input ng-model='name'>

Custom Defined Directives

<span draggable>Drag ME</span>

What are Directives? (contd..)


< !D O C TYPE htm l>
Directive
< htm lng-app>
< head>
< title> < /title>
< /head>
Directive
< body>
< div class= "container">
N am e: < input type= "text" ng-m odel= "nam e" /> {{ nam e }}
< /div>
< script src= "Scripts/angular.js"> < /script>
< /body>
< /htm l>

Data Binding Expression

Iterating with ng-repeat Directive


< htm ldata-ng-app= "">
...
< div class= "container"
data-ng-init= "nam es= ['D ave','N apur','H eedy','Shriva']">
< h3> Looping w ith the ng-repeat D irective< /h3>
< ul>
< lidata-ng-repeat= "nam e in nam es"> { { nam e } } < /li>
< /ul>
< /div>
Iterate through names

...
< /htm l>

Filters
Angular filters format data for display to the user.
{{ expression [| filter_name[:parameter_value] ... ] }}
{{ uppercase_expression | uppercase }}
{{ expression | filter1 | filter2 }}
Can create custom filters

Using Filters
< ul>
< lidata-ng-repeat= "cust in custom ers | orderBy:'nam e'">
{ { cust.nam e | uppercase } }
Order customers
< /li>
by name property
< /ul>

Filter customers by

< input type= "text" data-ng-m odel= "nam eText" />


model value
< ul>
< lidata-ng-repeat= "cust in custom ers | fi
lter:nam eText | orderBy:'nam e'">
{ { cust.nam e } } - { { cust.city } } < /li>
< /ul>

Expression
Expressions are JavaScript-like code snippets that are usually placed
in bindings such as {{ expression }}
<body>
1+2={{1+2}}
</body>

Demo

Why should we use Angular JS?


Bootstrap features
Directives for animation & effects for interactive
UI
SPA : modern way to represent WEB APP
Compatible with mobile app development

Why Developer should use Angular JS?

It is developed by google.

RESTful actions (Using one line of JS you can quickly communicate


with server)

Dependency Injection (DI) is a software design pattern that deals


with how components get hold of their dependencies.

Provides several options for testing (TDD)

Flexibility with filters

Good documentation & resources.

Some Statistics!

o Angular JS is 3 times faster than any external JS available till now ~Google.

More Statistics! (Interesting One)


GITHUB Stats:
Stars:
o if you star a repository, you basically want to show your appreciation as well as
keep track of repositories that you find interesting without it spamming your
timeline.
o In top 3 of github stars project list, only bootstrap & node js is ahead of it.
o Check stars stats:
o https://github.com/search?utf8=%E2%9C%93&q=stars%3A%3E30000&type=Reposit
ories&ref=searchresults
fork:
o In software engineering, a project fork happens when developers take a legal copy
of source code from one software package and start independent development on
it, creating a distinct piece of software.
o In top 7 of github fork project list.
o Check fork stats:
o https://github.com/search?utf8=%E2%9C%93&q=forks%3A%3E10000&type=Reposit
ories&ref=searchresults

Resources
Documentation

AngularJS Developer Guide

AngularJS API

AngularJS Tutorial

Videos

AngularJS Fundamentals In 60-ish Minutes

Introduction to Angular JS

AngularJS end-to-end web app tutorial Part I

Sagar
Acharya

sagar_acharya@live.in

Vous aimerez peut-être aussi