Bonsoir.
J'ai implémenté un component qui utilise un observable, modifié par un service.

J'ai besoin de modifier une variable dès que cet observable évolue. J'ai vu qu'il existait des Subjects et BehaviorSubject mais je n'arrive pas bien à les utiliser sur mon programme.

Voici mon componnent:

Code typescript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
import { Component, OnInit } from '@angular/core';
import { Impact } from '../impact';
import { ImpactsService } from '../impacts.service';
 
 
@Component({
  selector: 'app-impacts-list',
  templateUrl: './impacts-list.component.html',
  styleUrls: ['./impacts-list.component.css']
})
export class ImpactsListComponent implements OnInit {
 
  public impacts :Impact[];
  public score:number;
  public computing:string;
 
  constructor(private impactsService: ImpactsService) {
    this.impacts = [];
    this.score = 0;
    this.computing = "decimals";
  }
 
  getImpacts(): void {
    this.impactsService.getImpacts().subscribe(impacts => this.impacts = impacts);
  }
 
  compute(){
    if(this.computing == "integers"){
      this.score=0;
      for(var i=0; i<this.impacts.length;i++){
        this.score += Math.floor(this.impacts[i].score);
      }
 
    } else {
      this.score=0;
      for(var i=0; i< this.impacts.length;i++){
        this.score += this.impacts[i].score;
      }
      this.score = parseFloat(this.score.toFixed(1));
    }
  }
 
  ngOnInit(): void {
    this.getImpacts();
    this.compute();
  }
}

Je souhaite modifier la variable score à chaque évolution de l'observable impacts.
J'ai essayé de le modifier dans le subscribe de getImpacts(), mais cela ne m'a pas semblé une bonne pratique et cela ne fonctionne de toute façon pas.

Merci pour votre aide !