the productive developer guide to angular 2

28

Upload: maurice-beijer

Post on 15-Apr-2017

249 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: The productive developer guide to Angular 2
Page 2: The productive developer guide to Angular 2

The productivedeveloper guide to

Angular 2

Page 3: The productive developer guide to Angular 2

Who am I?Maurice de BeijerThe Problem SolverMicrosoft Azure MVPFreelance developer/instructorTwitter: @mauricedbWeb: http://www.TheProblemSolver.nlE-mail: [email protected]

Page 4: The productive developer guide to Angular 2

Looking back

Page 5: The productive developer guide to Angular 2
Page 6: The productive developer guide to Angular 2

Angular 2 !== Angular 1

Page 7: The productive developer guide to Angular 2

Angular is opinionated

Page 8: The productive developer guide to Angular 2
Page 9: The productive developer guide to Angular 2
Page 10: The productive developer guide to Angular 2
Page 11: The productive developer guide to Angular 2
Page 12: The productive developer guide to Angular 2
Page 13: The productive developer guide to Angular 2

Building blocksModulesComponentsTemplatesData bindingDirectivesServicesRoutingDependency injection

Page 14: The productive developer guide to Angular 2

Modules

Page 15: The productive developer guide to Angular 2

Angular 2 main module

  1. import { BrowserModule }   2.   from '@angular/platform‐browser';  3. import { NgModule } from '@angular/core';  4. import { FormsModule } from '@angular/forms';  5. import { HttpModule } from '@angular/http';  6.   7. import { AppComponent } from './app.component';  8. import { MoviesComponent }   9.   from './movies/movies.component';

 10. import { MovieComponent }  11.   from './movie/movie.component';

Page 16: The productive developer guide to Angular 2

Components

Page 17: The productive developer guide to Angular 2

The main component

  1. import { Component } from '@angular/core';  2.   3. @Component({  4.   selector: 'app‐root',  5.   templateUrl: './app.component.html',  6.   styleUrls: ['./app.component.css']  7. })  8. export class AppComponent {  9.   title = 'Popular movies!';

 10. }

Page 18: The productive developer guide to Angular 2

Templates

Page 19: The productive developer guide to Angular 2

Templates

  1. <h1>  2.   {{title}}  3. </h1>  4.   5. <app‐movies></app‐movies>  6.   7.   8.   9. 

 10. <ul> 11.   <li *ngFor="let movie of movies" 

Page 20: The productive developer guide to Angular 2
Page 21: The productive developer guide to Angular 2

Dependency injection

Page 22: The productive developer guide to Angular 2

Movie service

  1. import { Injectable } from '@angular/core';  2.   3. @Injectable()  4. export class MovieService {  5.   6.   constructor() {   7.   }  8.   9.   getMovies() {

 10.       return [{ 11.           "id":278,

Page 23: The productive developer guide to Angular 2
Page 24: The productive developer guide to Angular 2
Page 25: The productive developer guide to Angular 2

HTTP Requests

  1. import { Injectable } from '@angular/core';  2. import { Http } from '@angular/http';  3.   4. import 'rxjs/add/operator/map';  5.   6. @Injectable()  7. export class MovieService {  8.   9.   constructor(private http: Http) {  10.   } 11. 

Page 26: The productive developer guide to Angular 2

Movies component

  1. import { Component, OnInit } from '@angular/core';  2. import { MovieService } from '../movie.service';  3.   4. @Component({  5.   selector: 'app‐movies',  6.   templateUrl: './movies.component.html',  7.   styleUrls: ['./movies.component.css'],  8.   providers: [MovieService]  9. }) 10. export class MoviesComponent implements OnInit { 11. 

Page 27: The productive developer guide to Angular 2

Maurice de Beijer - @mauricedb

Page 28: The productive developer guide to Angular 2