2017-04-22 2 views
2

ich für jeden Download mehrere Download-Buttons auf einer Seite, mit einem Fortschrittsbalken haben:Dynamische Variablen in angular2/javascript

<progress-bar *ngIf="progressbar" [progress]="loadProgress_id1"></progress-bar> 
<progress-bar *ngIf="progressbar" [progress]="loadProgress_id2"></progress-bar> 

...

ich eine Funktion haben, die den Fortschritt setzt:

setpercentage(perc,id) { 
    this.loadProgress_+id = Math.round(perc); // --> how could I do this? 
    this.ref.detectChanges(); 
} 

Was ich versucht habe (oben) funktioniert nicht. Wie könnte ich das erreichen? Oder sollte ich einen anderen Ansatz verwenden?

+1

'dieses [ 'loadProgress' + id] = ' – yurzui

Antwort

1

versuchen diese

setpercentage(perc,id) { 
    this['loadProgress_' + id] = .... 
} 

oder

setpercentage(perc,id) { 
    const prop = 'loadProgress_' + id; 
    this[prop] = ... 
} 
1

Gibt es irgendeinen Grund ein Array würde das nicht funktionieren?

// Html

<progress-bar 
    *ngFor="let progress of progressBars" 
    [progress]="progress" 
></progress-bar> 

// Ts

progressBars: number[] = [0,0]; 

setpercentage(perc,id) { 
    this.progressBars[id] = Math.round(perc); 
    this.ref.detectChanges(); 
}