npm install -g npm@latest npm install -g @angular/cli ng new mon-premier-projet cd mon-premier-projet ng serve --open ng new mon-projet-angular --style=scss --skip-tests=true. npm install bootstrap@3.3.7 --save. ng serve import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] }) export class AppComponent { title = 'app'; } ng generate component mon-premier lastUpdate = new Promise((resolve, reject) => { const date = new Date(); setTimeout( () => { resolve(date); }, 2000 ); }); <p>Mis à jour : {{ lastUpdate | async | date: 'yMMMMEEEEd' | uppercase }}</p> app/services export class AppareilService { } import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { MonPremierComponent } from './mon-premier/mon-premier.component'; import { AppareilComponent } from './appareil/appareil.component'; import { FormsModule } from '@angular/forms'; import { AppareilService } from './services/appareil.service'; @NgModule({ declarations: [ AppComponent, MonPremierComponent, AppareilComponent ], imports: [ BrowserModule, FormsModule ], providers: [ AppareilService ], bootstrap: [AppComponent] }) export class AppModule { } constructor(private appareilService: AppareilService) { setTimeout( () => { this.isAuth = true; }, 4000 ); } export class AppareilService { appareils = [ { name: 'Machine à laver', status: 'éteint' }, { name: 'Frigo', status: 'allumé' }, { name: 'Ordinateur', status: 'éteint' } ]; } Les routes app.module.ts import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { MonPremierComponent } from './mon-premier/mon-premier.component'; import { AppareilComponent } from './appareil/appareil.component'; import { FormsModule } from '@angular/forms'; import { AppareilService } from './services/appareil.service'; import { AuthComponent } from './auth/auth.component'; import { AppareilViewComponent } from './appareil-view/appareil-view.component'; import { Routes } from '@angular/router'; const appRoutes: Routes = [ { path: 'appareils', component: AppareilViewComponent }, { path: 'auth', component: AuthComponent }, { path: '', component: AppareilViewComponent } ]; <router-outlet></router-outlet> import { Component, OnInit } from '@angular/core'; import { AuthService } from '../services/auth.service'; @Component({ selector: 'app-auth', templateUrl: './auth.component.html', styleUrls: ['./auth.component.scss'] }) export class AuthComponent implements OnInit { authStatus: boolean; constructor(private authService: AuthService) { } ngOnInit() { this.authStatus = this.authService.isAuth; } onSignIn() { this.authService.signIn().then( () => { console.log('Sign in successful!'); this.authStatus = this.authService.isAuth; } ); } onSignOut() { this.authService.signOut(); this.authStatus = this.authService.isAuth; } } <h2>Authentification</h2> <button class="btn btn-success" *ngIf="!authStatus" (click)="onSignIn()">Se connecter</button> <button class="btn btn-danger" *ngIf="authStatus" (click)="onSignOut()">Se déconnecter</button>
nov
16
Posted by : 16 novembre 2019
| On :