39 lines
970 B
TypeScript
39 lines
970 B
TypeScript
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);
|
|
}
|
|
}
|