I have a function that is called for each iteration.
And not excpectedly, this function is called twice at each iteration.
public setLevel(deviceId: string, averageFps: number): void {
let device = `device-${deviceId}`;
// (<HTMLElement>document.querySelector(`#${device} .level-fps-wrapper .level-fps`)).style.width = `${averageFps / 300 * 100}%`;
console.log(device);
}
Here is the html template
<div class="container">
<div class="row">
<h1 class="header">Devices</h1>
<div class="col l4 m6 s12 clickable" *ngFor="let device of this.devices" (click)="goToDevice(device)">
<div class="card" [id]="'device-' + device.device._id">
<div class="card-content">
<div class="row no-margin-bottom">
<div class="col s2">
<img class="circle circle-element" [src]="'./app/devices/images/' + device.device.os + '_logo.png'" alt="">
</div>
<div class="col s10">
<span class="card-title">{{ device.device.name }}</span>
<p>
{{ device.averageFps | number: '.1-2' }} fps
</p>
</div>
</div>
</div>
<div class="card-action level-fps-wrapper">
<div class="level-fps">{{ this.setLevel(device.device._id, device.averageFps) }}</div>
</div>
</div>
</div>
</div>
This is the output
It should be 3 lines instead of 6.
Someone could explain it to me? Is there something to do with angular Lifecycle hooks?
Thanks for your answers!