Ajout d'un exemple simple sur les observables.
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import {Component} from '@angular/core';
|
||||
import {BehaviorSubject, Observable, Subject} from "rxjs";
|
||||
import {Car} from "../../core/model/car";
|
||||
|
||||
@Component({
|
||||
selector: 'app-simple-observable-exemple',
|
||||
templateUrl: './simple-observable-exemple.component.html',
|
||||
styleUrls: ['./simple-observable-exemple.component.scss']
|
||||
})
|
||||
export class SimpleObservableExempleComponent {
|
||||
private carsSubject: BehaviorSubject<Car[]> = new BehaviorSubject<Car[]>([]);
|
||||
private cars: Car[] = [];
|
||||
|
||||
get cars$(): Observable<Car[]> {
|
||||
return this.carsSubject.asObservable();
|
||||
}
|
||||
|
||||
addNewCar(): void {
|
||||
const newCar: Car = {
|
||||
id: `${Math.random() * 100}`,
|
||||
brand: 'Toyota',
|
||||
model: 'Yaris',
|
||||
power: 12,
|
||||
numberOfSeats: 5
|
||||
}
|
||||
this.cars.push(newCar);
|
||||
this.emitCarsUpdateEvent();
|
||||
}
|
||||
|
||||
removeCars(): void {
|
||||
this.cars = [];
|
||||
this.emitCarsUpdateEvent();
|
||||
}
|
||||
|
||||
private emitCarsUpdateEvent(): void {
|
||||
this.carsSubject.next(this.cars);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user