angular js introduction

69
Introduction to

Upload: dhyego-fernando

Post on 09-Jan-2017

112 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Angular JS Introduction

Introduction to

Page 2: Angular JS Introduction

About meFull-stack dev

@dhyegofernando

Page 3: Angular JS Introduction
Page 4: Angular JS Introduction
Page 5: Angular JS Introduction

The beginning

Page 6: Angular JS Introduction

http://web.archive.org/web/20050428014715/http://www.youtube.com/

2005

Page 7: Angular JS Introduction
Page 8: Angular JS Introduction

SPASingle Page Application

Page 9: Angular JS Introduction
Page 10: Angular JS Introduction

“AngularJS: a kind of HTML extension.”

Page 11: Angular JS Introduction

D D D

Page 12: Angular JS Introduction

Data-binding Dependency Injection Directives

Page 13: Angular JS Introduction

Data-binding

Page 14: Angular JS Introduction

$('#input-name').on('change', function() { $('#greeting-name').text(this.value);});

#input-name

#greeting-name

Page 15: Angular JS Introduction
Page 16: Angular JS Introduction
Page 17: Angular JS Introduction

model

module bootstrap

template expression

<div ng-app> <div> <label>Name:</label> <input type="text" ng-model="yourName"> <hr> <h1>Hello {{yourName}}!</h1> </div></div>

Page 18: Angular JS Introduction
Page 19: Angular JS Introduction

Dependency Injection

Page 20: Angular JS Introduction

controller bootstrap

<div ng-app="app" ng-controller="GreetingController"> <form ng-submit="greet()"> <input type="text" ng-model="name"> <button type="submit">Greet</button> </form></div>

Page 21: Angular JS Introduction

module application

dependency injection

...service

3rd's module

service

angular.module('app', ['alerter']) .controller('GreetingController', function($scope, Alerter) { $scope.name = 'John Doe'; $scope.greet = function() { Alerter.show('Hello ' + $scope.name); }; });

angular.module('alerter', []) .factory('Alerter', function($window) { return { show: function(string) { $window.alert(string); } }; });

Page 22: Angular JS Introduction

Directives

Page 23: Angular JS Introduction

Tab Component

Page 24: Angular JS Introduction

Non-semantic way

bootstrap

plugin element<div id="tab"> <ul class="tab-head"> <li><a href="#content-1">Title 1</a></li> <li><a href="#content-2">Title 2</a></li> <li><a href="#content-3">Title 3</a></li> </ul> <div id="content-1" class="tab-content"> <p>Content 1 goes here</p> </div> <div id="content-2" class="tab-content"> <p>Content 2 goes here</p> </div> <div id="content-3" class="tab-content"> <p>Content 3 goes here</p> </div></div>

$('#tab').tab();

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

Semantic waydirectives bootstrap

...

tab components

<tabset> <tab heading="Title 1"> <p>Content 1 goes here</p> </tab> <tab heading="Title 2"> <p>Content 2 goes here</p> </tab> <tab heading="Title 3"> <p>Content 3 goes here</p> </tab></tabset>

angular.module('tab') .directive('tabset', function() { // ... }) .directive('tab', function() { // ... });

Page 27: Angular JS Introduction
Page 28: Angular JS Introduction

Hello {{ world }}

Page 29: Angular JS Introduction

load angular script

bootstrap application

set model

template

<!DOCTYPE html><html lang="en" ng-app><head> <meta charset="UTF-8"> <title>Hello World</title></head><body> <input type="text" ng-model="name"> <h1>Hello {{ name }}</h1> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script></body></html>

Page 30: Angular JS Introduction

Some golden tips

Page 31: Angular JS Introduction

Don't reinvent the wheel

Page 32: Angular JS Introduction

...use 3rd's components✓ nice documentation

✓ great tests suit

✓ maintained

✓ best practices

Page 33: Angular JS Introduction

where to find components?

Page 34: Angular JS Introduction

http://ngmodules.org/

Page 35: Angular JS Introduction

http://bower.io/

Page 36: Angular JS Introduction

how to use components?

Page 37: Angular JS Introduction

install the componentbower install --save angular-material

load the component scripts<link rel="stylesheet" href="angular-material.min.css" rel="stylesheet"><script src="angular-material.min.js"></script>

load the component moduleangular.module('app', ['ngMaterial']);

Page 38: Angular JS Introduction

follow the style guide

Page 39: Angular JS Introduction

https://github.com/johnpapa/angular-styleguide

Page 40: Angular JS Introduction

write tests

Page 41: Angular JS Introduction

http://karma-runner.github.io/

Page 42: Angular JS Introduction

http://angular.github.io/protractor/

Page 43: Angular JS Introduction

use generators

Page 44: Angular JS Introduction

http://yeoman.io/

Page 45: Angular JS Introduction

https://github.com/yeoman/generator-angular

Page 46: Angular JS Introduction

putting it all together

Page 47: Angular JS Introduction

https://github.com/dhyegofernando/shopping-list-app

Shopping list app

Page 48: Angular JS Introduction

keep learning

Page 49: Angular JS Introduction

https://docs.angularjs.org/api

Page 50: Angular JS Introduction

with videos

Page 51: Angular JS Introduction

https://www.youtube.com/user/angularjs/

Page 52: Angular JS Introduction

https://egghead.io/

Page 53: Angular JS Introduction

with blogs

Page 54: Angular JS Introduction

http://www.johnpapa.net/

Page 55: Angular JS Introduction

http://briantford.com/

Page 56: Angular JS Introduction

http://toddmotto.com/

Page 57: Angular JS Introduction

with books

Page 58: Angular JS Introduction

AngularJS - Up & Running

Page 59: Angular JS Introduction

https://www.ng-book.com/

Page 60: Angular JS Introduction

with tools

Page 61: Angular JS Introduction

http://ng-inspector.org/

Page 62: Angular JS Introduction

https://github.com/angular/angularjs-batarang

Page 63: Angular JS Introduction

and more...

Page 64: Angular JS Introduction

Angular 2

Page 65: Angular JS Introduction

https://angular.io/

Page 66: Angular JS Introduction

https://angular.io/docs/js/latest/quickstart.html

Page 67: Angular JS Introduction

Questions?

Page 68: Angular JS Introduction

Now it's up to you

Page 69: Angular JS Introduction

Thank you

@dhyegofernando