angular js - introduction

26
HTML enhanced for web apps! ~Sagar Acharya

Upload: sagar-acharya

Post on 16-Apr-2017

1.663 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Angular JS - Introduction

HTML enhanced for web apps!~Sagar Acharya

Page 2: Angular JS - Introduction

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

Page 3: Angular JS - Introduction

Another JS Lib

Lots of new learning

Difficult to learn

Useful for web only ?Used for

styling purpose

Page 4: Angular JS - Introduction

What is ANGULARJS?

• It’s 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).

Page 5: Angular JS - Introduction

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.

Page 6: Angular JS - Introduction

Single Page Application (SPA)SPA Demo

http://www.myspa.com

View View

View View

Page 7: Angular JS - Introduction

The Challenge with SPAs

DOM Manipulation History

Routing

Module Loading

Data Binding

Object Modeling

Ajax/Promises

Caching

View Loading

Page 8: Angular JS - Introduction

Solution?

Page 9: Angular JS - Introduction

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

Page 10: Angular JS - Introduction

Key Features of ANGULARJS

ngularJS is a full-featured SPA framework

Data Binding MVC Routing

Templates

ViewModel Views

Controllers Dependency Injection

Directives

Testing

Controllers

jqLite

Validation

FactoriesHistory

Page 11: Angular JS - Introduction

MVC : Model View Controller

View

ControllerModel

1. Event or User Action or View Load

2. Maps to particular Model after fetching the data

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

View : • Renders the Model data• Send User actions/events to

controller• UI

Controller: • Define Application Behavior• Maps user actions to Model• Select view for response

Model: • Business Logic• Notify view changes• Application

Functionality• Data in general

Page 12: Angular JS - Introduction

MVVM: Model View ViewModel

View

ViewModelModel

UI

Presentation LogicBusiness Logic and Data

• User actions, commands• Data binding• Notifications

• Data Access• Update ViewModel about

change

Page 13: Angular JS - Introduction

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>

Page 14: Angular JS - Introduction

What are Directives? (contd..)

<!DOCTYPE html><html ng-app><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

Page 15: Angular JS - Introduction

Iterating with ng-repeat Directive<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

Page 16: Angular JS - Introduction

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

Page 17: Angular JS - Introduction

Using Filters

<ul> <li data-ng-repeat="cust in customers | orderBy:'name'"> {{ cust.name | uppercase }} </li></ul>

Order customers by name property

<input type="text" data-ng-model="nameText" /><ul> <li data-ng-repeat="cust in customers | filter:nameText | orderBy:'name'"> {{ cust.name }} - {{ cust.city }}</li></ul>

Filter customers by model value

Page 18: Angular JS - Introduction

Expression

Expressions are JavaScript-like code snippets that are usually placed in bindings such as {{ expression }}

<body>

1+2={{1+2}}

</body>

Page 19: Angular JS - Introduction

Demo

Page 20: Angular JS - Introduction

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

Page 21: Angular JS - Introduction

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.

Page 22: Angular JS - Introduction

Some Statistics!

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

Page 23: Angular JS - Introduction

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=Repos

itories&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=Repos

itories&ref=searchresults

Page 24: Angular JS - Introduction

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

Page 25: Angular JS - Introduction
Page 26: Angular JS - Introduction

SagarAcharya

[email protected]