ANGULAR 2
IN a NUTSHELL
#ngmorocco
outline
> Angular 2 the key concepts
- TypeScript
- Components
- Pipes
- Services
- Directives
- Binding
- Modularity
- Routing
> [Workshop] Coding Dojo
ANGULAR 2
IS A javascript
framwork platform for creating
Web apps
Mobile
web apps
Native apps
Desktop apps
ANGULAR 2
IS BUILt
USING TYPESCRIPT
TYPE SCRIPT
ES7 (ECMASCRIPT 2016)
TYPESCRIPT
ES5 (ECMASCRIPT 5)
ES6 (ECMASCRIPT 2015)
*.ts
*.js
transpilation
YOU CAN USE
TYPESCRIPT, ES6 OR ES5
It'S A TREE OF SELF-DESCRIBING
COMPONENTS
Angular 2
is not an MV* framework but rather a component-based one
COMPONENTS
Application
Navbar
Angular 2 APP
Search
Carousel
Product
THIS IS A COMPONENT
Application
// my-roor-app.component.ts
import {Component} from '@angular/core';
@Component({
selector: 'my-root-app',
templateUrl: './my-root-app.component.html',
})
class Application { /* ... */ }
<!-- index.html -->
<my-root-app>Your application is loading...</my-root-app>
COMPONENTS have templates
<div> Hello {{ name }} </div>
{{ expression }}
[ props ]
( event )
<img [src]="imageUrl" />
<button (click)="doIt()"></button>
[( ngmodel )]
<input [(ngModel)]="name" />
COMPONENTS still have DIRECTIVES
- 3 types of Angular2 Directives :
- Components
- Attribute Directives : ngStyle, ngClass, …
- Structural Directives : ngIf, ngSwitch, ngFor, …
<div [ngStyle]="setStyles()">
<p *ngFor="let player of players">...</p>
</div>
COMPONENTS CAN DISPLAY FORMATED DATA > PIPES
PIPE 1
DATA
PIPE 2
PIPE 3
PIPE 4
<p>
The chained mario's birthday is
{{ birthday | date:'fullDate' | uppercase}}
</p>
UpperCasePipe
LowerCasePipe
CurrencyPipe
PercentPipe
DatePipe
...
Angular 2 comes with a stock of build-in pipes
COMPONENTS ARE ROUTABLE
- Angular2 router = Complete rewrite
- Inspired by the UI-Router (Nested views, ....)
index.html
menu
<router-outlet>
COMPONENT
COMPONENT
COMPONENT
/component1
/component2
/component3
<router-outlet>
COMPONENTS INJECT SERVICES
Service is a class that encapsulates some sort of functionality and provides it as a service for the rest of the application.
export class UserService {
private users: User[] = [];
constructor(
private backend: BackendService,
private logger: Logger
) { ... }
getAllUSers() {
return this.users;
}
}
DEPENDENCY INJECTION
ANGULAR APPS
ARE MODULAR
THANKS TO ECMASCRIPT 6
Angular 2 APP
ANGULAR 2
HAS ITS OWN MODULAR SYSTEM
a.k.a @ngmodule
be careful
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
@NgModule({
imports: [ BrowserModule ],
providers: [ Logger ],
declarations: [ AppComponent ],
exports: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
- Every Angular app has at least one module (AppModule)
- You must bootstrap your root module
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);
CODING DOJO
slides >
Angular 2 in a nutshell
By Ouadie LAHDIOUI
Angular 2 in a nutshell
Angular 2 in a nutshell
- 1,236